用一个栈实现另一个栈的排序
答案:1 悬赏:70 手机版
解决时间 2021-01-27 02:47
- 提问者网友:謫仙
- 2021-01-26 09:41
用一个栈实现另一个栈的排序
最佳答案
- 五星知识达人网友:动情书生
- 2021-01-26 10:22
import java.util.Stack;
public class SortStackByStack {
public static void main(String[] args) {
Stack s=new Stack();
s.push(3);
s.push(2);
s.push(5);
s.push(4);
s.push(1);
s=sortStackbyStack(s);
while(!s.isEmpty()){
System.out.println(s.pop());
}
}
public static Stack sortStackbyStack(Stack stack){
Stack help=new Stack();
while(!stack.isEmpty()){
int cur=stack.pop();
while(!help.isEmpty() && cur>help.peek()){
stack.push(help.pop());
}
// help.push(stack.pop()); 这个地方要是写了就pop了2次,显然不正确
help.push(cur);
}
while(!help.isEmpty()){
stack.push(help.pop());
}
return stack;
}
// public static Stack sortStackbyStack1(Stack stack){
// Stack help=new Stack();
// while(!stack.isEmpty()){
// int cur=stack.pop();
// while(!help.isEmpty() && cur<=help.peek()){
// help.push(cur);
// }
//// help.push(stack.pop()); 这个地方要是写了就pop了2次,显然不正确
// stack.push(help.pop());
// }
// while(!help.isEmpty()){
// stack.push(help.pop());
// }
// return stack;
// }
}追问我只是想知道我写的哪里错了。。
public class SortStackByStack {
public static void main(String[] args) {
Stack
s.push(3);
s.push(2);
s.push(5);
s.push(4);
s.push(1);
s=sortStackbyStack(s);
while(!s.isEmpty()){
System.out.println(s.pop());
}
}
public static Stack
Stack
while(!stack.isEmpty()){
int cur=stack.pop();
while(!help.isEmpty() && cur>help.peek()){
stack.push(help.pop());
}
// help.push(stack.pop()); 这个地方要是写了就pop了2次,显然不正确
help.push(cur);
}
while(!help.isEmpty()){
stack.push(help.pop());
}
return stack;
}
// public static Stack
// Stack
// while(!stack.isEmpty()){
// int cur=stack.pop();
// while(!help.isEmpty() && cur<=help.peek()){
// help.push(cur);
// }
//// help.push(stack.pop()); 这个地方要是写了就pop了2次,显然不正确
// stack.push(help.pop());
// }
// while(!help.isEmpty()){
// stack.push(help.pop());
// }
// return stack;
// }
}追问我只是想知道我写的哪里错了。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯