我试图使用堆栈对元素进行排序。我做的一切,但我没有git输出排序.. 我的代码:
Scanner oman= new Scanner(System.in);
System.out.println(" Enter the size of stack: ");
int stackSize = oman.nextInt();
Stack<Integer> stack = new Stack<Integer>();
for(int i = 0; i < stackSize; i++){
System.out.println("Enter the number : ");
int number = oman.nextInt();
System.out.println("The Number is entered in the stack. ");
stack.push(number);
}
while (!(stack.isEmpty())) {
System.out.println(stack.pop());
}
示例:
Input Enter the size of stack: 3 Enter the First Number :10 Enter the Second Number : 5 Enter The T hired Number : 20 Output 3 5 10 20像这样
答案 0 :(得分:0)
提示:你需要2个堆栈。
提示2:这是一个谜题:
I
的堆中(用于输入)。 使用两个名为S
(用于排序)和T
(用于临时)的额外堆,将所有卡从I
移至S
,具有以下约束:
I
堆上。S
必须包含1 ...到N的所有卡片。如果你能解决这个难题,你已经开发了一个算法,用于使用堆栈进行排序。
答案 1 :(得分:-1)
排序代码在哪里?我建议你在将它们推入堆栈之前比较这些元素。仅当元素大于堆栈中的顶部元素时才推送元素。 (即10位于堆栈的顶部。接下来是5.现在你比较5和10. 10更大,所以弹出它并推5.然后推10.接下来是20.它大于10所以你推它)