当前位置:网站首页>用一个栈实现另一个栈的排序
用一个栈实现另一个栈的排序
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边栏推荐
猜你喜欢
随机推荐
Leetcode: monotonic stack structure (Advanced)
02 MongoDB数据类型、重要概念以及shell常用指令
Detailed explanation of iptables firewall rules and firewalld firewall rules
解决跨域
回溯—迷宫问题
数字有为,易步到位 华为携“5极”明星产品加速布局商业市场
解析STEAM教育框架下未来教师研究能力
ambari SSLError: Failed to connect. Please check openssl library versions.
数组的方法
MSC 307(88) (2010 FTPC Code)第2部分烟气和毒性测试
2021 year end summary and 2022 outlook
指针链表
电学基础知识整理(一)
A preliminary study of blackbody radiation
多线程与高并发二:volatile和CAS详细介绍
MSC 307(88) (2010 FTPC Code) Part 5低播焰测试
Several ways of sharing printers in LAN
美创入选“2022 CCIA中国网络安全竞争力50强”榜单
Understanding and learning of parental delegation mechanism
PostgreSQL 实现批量更新、删除、插入









