题目:一个栈中的元素为整型,现将栈中元素按从栈顶到栈底从大到小排序,值允许申请一个栈,不能再 申请额外的数据结构。
实现:
1.定义要排序的栈stack,辅助栈temp。
2.只要stack不为空,弹出栈顶数据int data = stack.pop(),一直进行如下操作:
1)若从stack.pop()比temp.peek()小或相等,则直接压入;
2)若从stack.pop()比temp.peek()大,则将弹出temp栈顶数据压入stack;直到temp的栈顶数据大于data,将data压入temp。
3.继续判断后面的数据,直到所有数据已经压入temp,最后将temp全部弹出,放入stack。
1 | import java.util.Scanner; |
1 | //Test |