当前位置:网站首页>用一个栈实现另一个栈的排序
用一个栈实现另一个栈的排序
2022-06-28 03:33:00 【牛哄哄的柯南】
用一个栈实现另一个栈的排序
【题目】
一个栈中元素的类型为整型,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个栈。除此之外,可以申请新的变量,但不能申请额外的数据结构。如何完成排序?
【思路】
需要排序的栈:stackData,用一个辅助栈:stackHelp
从stackData开始pop,记录为cur,那cur和stackHelp的栈顶比较,如果stackHelp的栈顶比cur小,就把stackHelp栈的数据一直往stackData压,知道条件不成立(stackHelp.peek()<cur),前提肯定是stackHelp不为空,然后就把cur压入stackHelp中,模拟下就可以看到一个现象,stackHelp的栈底总是比较大,然后往上面变小,最后stackHelp变成了从栈顶到栈底,数据逐渐变大,最后把stackHelp的数据弹出压入stackData,就行了,就实现了stackData栈从顶到底按从大到小。
【代码】
package pers.keafmd.accumulate.codeinterviewguide边栏推荐
- 04 MongoDB各种查询操作 以及聚合操作总结
- Using elk to build a log analysis system (I) -- component introduction
- django. core. exceptions. ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3
- 多项目设计开发·类库项目引入入门
- A preliminary study of blackbody radiation
- Detailed explanation of KVM common commands
- uni-app 如何根据环境自动切换请求的地址
- Analyzing the comprehensive application ability of educational robot
- 利用ELK 搭建日志分析系统(一)—— 组件介绍
- Zipkin service link tracking
猜你喜欢

使用信号分析器

门级建模—学习笔记

光的粒子说(光电效应/康普顿效应)

Detailed explanation of KVM common commands

leetcode:494. All methods of adding and subtracting operators to the array to get the specified value

Pycharm不同项目之间共用第三方模块

How to write a software test report? Here comes the third party performance report template

多线程与高并发三:AQS底层源码分析及其实现类

开启创客教育造物学的领域

电学基础知识整理(二)
随机推荐
多线程与高并发四:VarHandle与强软弱虚引用和ThreadLocal
Particle theory of light (photoelectric effect / Compton effect)
Staggered and permutation combination formula
使用tensorboard进行loss可视化
第一个.net core MVC项目
C语言十进制与BCD码的相互转换
gcd最大公约数
Supplementary questions of monthly competition
Arrangement of basic electrical knowledge (I)
谈云原生,不得不谈的容器
利用ELK 搭建日志分析系统(三)—— 安全认证
门级建模—学习笔记
Web APIs DOM-事件基础丨黑马程序员
解析教育机器人的综合应用能力
光的粒子说(光电效应/康普顿效应)
A preliminary study of blackbody radiation
双亲委派机制的理解学习
等保三级密码复杂度是多少?多久更换一次?
内卷、躺平与中年危机的相关思考
leetcode - 329. 矩阵中的最长递增路径