用一个栈实现另外一个栈的排序:
import java.util.Stack;
//用一个栈实现另外一个栈的排序
public class StackSortStack{
//借助栈的排序
public static void StackSort(Stack<Integer>stack)
{
Stack <Integer>help =new Stack<Integer>();
while(!stack.isEmpty())
{
//获取栈顶的元素
int cur=stack.pop();
while(!help.isEmpty()&&help.peek()<cur)
{
stack.push(help.pop()); //压入stack
}
help.push(cur); //获得从栈顶到栈底从小到大的排序
}
//获得从栈顶到栈底从大到小的排序
while(!help.isEmpty())
{
stack.push(help.pop());
}
}
public static void main(String []args)
{
Stack<Integer> stack=new Stack<Integer>();
stack.add(1);
stack.add(5);
stack.add(3);
stack.add(4);
stack.add(6);
StackSort(stack);
while(!stack.isEmpty())
{
System.out.println(stack.pop());
}
}
}