一个栈实现排序

用一个栈实现把栈内元素从大到小排序栈顶元素是最大的
只能使用栈这种结构不能使用其他结构;
题解:
首先设置一个辅助栈:
假设原来栈里的元素是1,5,2,4,6,3;
辅助栈:先判断辅助栈栈顶元素是不是比栈顶元素大,是直接加不管,不是则将辅助栈元素弹出加入原栈中重新入栈即可;
代码实现:
public class DAXIAO {

public static void Reve(Stack<Integer> stack)
{
    Stack<Integer>stack1=new Stack<>();
    while(!stack.isEmpty())
    {
        int cur=stack.pop();
        while(!stack1.isEmpty()&&stack1.peek()<cur)
        {
            stack.push(stack1.pop());
        }
        stack1.push(cur);
    }
    while(!stack1.isEmpty())
    {
        stack.push(stack1.pop());
    }

}
    public static void main(String [] args)
    {
    Stack<Integer> stack=new Stack<Integer>();
    stack.push(1);
    stack.push(2);
    stack.push(3);
    Reve(stack);
    while(!stack.isEmpty())
    System.out.println(stack.pop());
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-29 17:30
找实习找着找着就要进入7月了,马上秋招也要开始了,找实习还有意义吗?
绝迹的星:有面就面, 没面上就当日薪4位数大佬免费培训, 面上了再考虑要不要实习
点赞 评论 收藏
分享
牛客84809583...:举报了
点赞 评论 收藏
分享
字节一直是我的白月光,考虑到转正还是拒了日常实习。
从今天开始狠狠卷JV...:为什么你释放的offer没流到我头上
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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