题目
请编写一个程序, 对一个栈里的整型数据, 按升序进行排序(即排序前, 栈里
的数据是无序的, 排序后最大元素位于栈顶) , 要求最多只能使用一个额外的
栈存放临时数据, 但不得将元素复制到别的数据结构中。
实现
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void test(Stack<Integer> stack) {
Stack<Integer> help = new Stack<>();
while (!stack.isEmpty()) {
int temp = stack.pop();
while (!help.isEmpty() && temp < help.peek()) {
stack.push(help.pop());
}
help.push(temp);
}
while (!help.isEmpty()) {
System.out.print(help.pop() + " ");
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
Stack<Integer> stack = new Stack<>();
for (int i = 0; i < n; i++) {
int temp = in.nextInt();
stack.push(temp);
}
test(stack);
}
}