package zuochengyun.dynamic;
import java.util.Stack;
/**
* 1.临时变量对主栈的栈顶元素进行存储并和辅助栈的栈顶元素比大小来决定辅助栈是否弹栈
* 2.辅助栈保存了主栈所需排序的逆序,然后再将辅助栈依次弹出压入主栈即可
* @author SUN
*
*/
public class SortStackByStack {
public static void sortStackByStack(Stack<Integer> stack){
Stack<Integer> help=new Stack<Integer>();
//stack的栈顶元素小于等于help的栈顶元素时将其压入help栈,当大于时,先将help中的小于stack栈顶元素的元素压入stack
while(!stack.isEmpty()){
int temp=stack.pop();
while(!help.isEmpty()&&temp>help.peek()){
stack.push(help.pop());
}
help.push(temp);
}
while(!help.isEmpty()){
stack.push(help.pop());
}
}
}