题解 | #用一个栈实现另一个栈的排序#

用一个栈实现另一个栈的排序

http://www.nowcoder.com/practice/ff8cba64e7894c5582deafa54cca8ff2

import java.util.Scanner;
import java.util.Stack;

public class Main {

    //将栈中的元素排序
    public static void sortStackByStatck(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());
        }
        help.push(cur);
    }
    while (!help.isEmpty()) {
        stack.push(help.pop());
    }
}

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        Stack<Integer> stack = new Stack<Integer>();
        while (n-- > 0) {
            stack.push(sc.nextInt());
        }
        sortStackByStatck(stack);
        while (!stack.isEmpty()){
            System.out.print(stack.pop() + " ");//但是栈也变成一个空栈了
        }

    }
}
全部评论
主函数申请了一个栈,排序函数也申请了一个栈,这算不算申请了两个栈?
点赞 回复 分享
发布于 2022-03-14 13:04

相关推荐

12-19 22:04
武汉大学 Java
点赞 评论 收藏
分享
12-05 18:09
已编辑
广东药科大学 后端工程师
点赞 评论 收藏
分享
黑着眼圈看手机:pdd秋招笔试挂了,春招还行吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务