C++_homework_StackSort
2024-04-25 15:17:01
顾名思义(?)类似于单调栈?维护一个单调递减的栈。一旦准备入栈的元素大于栈顶元素,栈一直弹出直到准备入栈的元素小于等于栈顶元素,弹出的元素压入另一个tmp栈中。
1 #include <iostream> 2 #include <stack> 3 #include <cstdlib> 4 #include <ctime> 5 using namespace std; 6 7 void StackSort(stack<int>& s) 8 { 9 stack<int> tmp; 10 while(!s.empty()){ 11 tmp.push(s.top()); 12 s.pop(); 13 } 14 while(!tmp.empty()){ 15 if(s.empty()){s.push(tmp.top());tmp.pop();} 16 else{ 17 int x=tmp.top(); 18 tmp.pop(); 19 if(x<=s.top()) s.push(x); 20 else{ 21 while(!s.empty()&&x>s.top()){ 22 tmp.push(s.top()); 23 s.pop(); 24 } 25 s.push(x); 26 } 27 } 28 } 29 } 30 31 void display(stack<int> s) 32 { while (!s.empty()) cout<<s.top()<<endl,s.pop(); 33 cout<<endl; 34 } 35 int main(int argc,char**argv) 36 { const int n{20}; 37 srand((unsigned)time(0)); 38 stack<int> s; 39 for (int i{0};i<n;i++) s.push(rand()%100); 40 cout<<"Before sorting:"<<endl<<endl; display(s); 41 cout<<"After sorting:"<<endl; StackSort(s); display(s); 42 return 0; 43 }
s:
tmp: 8 7 9
s: 9
tmp: 8 7
s: 9 7
tmp: 8
s: 9 8
tmp: 7
s: 9 8 7
tmp:
转载于:https://www.cnblogs.com/Jiiiin/p/8668704.html
C++_homework_StackSort相关推荐
最新文章
- Python + Steamlit 快速开发可视化 web 页面!
- java基础69 JavaScript产生伪验证码(网页知识)
- Vue 2.3、2.4 知识点小结
- 登录判断_Spring Security之多次登录失败后账户锁定功能的实现
- SLF4JLoggerContext cannot be cast to LoggerContext
- Django项目部署:使用uwsgi和nginx的方式
- linux shell编程if语句内判断参数
- 『摄影欣赏』好萌了!12幅可爱的婴儿照片【组图】
- (github精选)优秀的openSCAD项目image2surface
- 时钟倒计时html,jQuery倒计时/计时器/时间插件
- Excel导入数据库(vue+py)py部分
- 【数学基础】欧式变换、相似变换、仿射变换、射影变换
- mysql 正击剑_学正小学击剑课程彰显“亮剑”精神
- 如何使用Aplayer播放器
- win32消息处理和创建窗口
- 基于黄金正弦与自适应融合的蜉蝣优化算法
- 论文的文献类别有哪些?
- Python基础(二)计算
- 华硕笔记本启动项全部丢失解决办法
- 软件产品检测报告是软件企业成功退税的必要的材料之一
热门文章
- 杨凌职业技术学院计算机专业宿舍,杨凌职业技术学院宿舍条件,宿舍图片和环境空调及分配方法...
- android 动画 alpha,浅析Android 动画之AlphaAnimation应用操作
- 电流电压曲线 vc源码_电瓶修复—充电曲线你知道多少?
- 人脸对齐(十一)--PIFA2015
- 通过高速计算机网络和多媒体,全国2014.10办公自动化原理及应用试题
- php事务和回滚,php – Mysql事务:提交和回滚
- python字典键值可以是元组吗_python – 为同一个字典值创建可交换元组键...
- java中rhino什么用_使用require.js和Java / Rhino解析模块
- mysql 查询指定日期的上一周的最后一天
- spark稀疏向量与稠密向量