当前位置:网站首页>用一个栈实现另一个栈的排序
用一个栈实现另一个栈的排序
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
边栏推荐
猜你喜欢
Door level modeling - learning notes
One article tells you what kubernetes is
Analyzing the comprehensive application ability of educational robot
applicationContext.getBeansOfType 获取一个接口下所有实现类 执行方法或者获取实现类对象等 操作应用场景学习总结
机器人编程教育的市场竞争力
The operating mechanism of spectrogram in audio Science
音频 scipy 中 spectrogram 的运作机制
多项目设计开发·类库项目引入入门
Pycharm不同项目之间共用第三方模块
02 MongoDB数据类型、重要概念以及shell常用指令
随机推荐
English grammar_ Adjective / adverb Level 3 - Comparative
使用信号分析器
等保三级密码复杂度是多少?多久更换一次?
Pycharm setting pseudo sublime color scheme
MSC 307(88) (2010 FTPC Code) Part 9床上用品试验
Unity C # e-learning (11) -- custom protocol generation tool
sqlserver 数据库之事物使用入门 案例
机器学习入门笔记
双亲委派机制的理解学习
Detailed explanation of iptables firewall rules and firewalld firewall rules
黑體輻射初探
品达通用权限系统(Day 5~Day 6)
多线程与高并发六:线程池源码解析
开关电源—Buck电路原理及其仿真
Staggered and permutation combination formula
JVM一:JVM入门以及Class文件认识
多线程与高并发二:volatile和CAS详细介绍
Adder - Notes
GCD maximum common divisor
Analyzing the comprehensive application ability of educational robot