顾名思义(?)类似于单调栈?维护一个单调递减的栈。一旦准备入栈的元素大于栈顶元素,栈一直弹出直到准备入栈的元素小于等于栈顶元素,弹出的元素压入另一个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相关推荐

最新文章

  1. Python + Steamlit 快速开发可视化 web 页面!
  2. java基础69 JavaScript产生伪验证码(网页知识)
  3. Vue 2.3、2.4 知识点小结
  4. 登录判断_Spring Security之多次登录失败后账户锁定功能的实现
  5. SLF4JLoggerContext cannot be cast to LoggerContext
  6. Django项目部署:使用uwsgi和nginx的方式
  7. linux shell编程if语句内判断参数
  8. 『摄影欣赏』好萌了!12幅可爱的婴儿照片【组图】
  9. (github精选)优秀的openSCAD项目image2surface
  10. 时钟倒计时html,jQuery倒计时/计时器/时间插件
  11. Excel导入数据库(vue+py)py部分
  12. 【数学基础】欧式变换、相似变换、仿射变换、射影变换
  13. mysql 正击剑_学正小学击剑课程彰显“亮剑”精神
  14. 如何使用Aplayer播放器
  15. win32消息处理和创建窗口
  16. 基于黄金正弦与自适应融合的蜉蝣优化算法
  17. 论文的文献类别有哪些?
  18. Python基础(二)计算
  19. 华硕笔记本启动项全部丢失解决办法
  20. 软件产品检测报告是软件企业成功退税的必要的材料之一

热门文章

  1. 杨凌职业技术学院计算机专业宿舍,杨凌职业技术学院宿舍条件,宿舍图片和环境空调及分配方法...
  2. android 动画 alpha,浅析Android 动画之AlphaAnimation应用操作
  3. 电流电压曲线 vc源码_电瓶修复—充电曲线你知道多少?
  4. 人脸对齐(十一)--PIFA2015
  5. 通过高速计算机网络和多媒体,全国2014.10办公自动化原理及应用试题
  6. php事务和回滚,php – Mysql事务:提交和回滚
  7. python字典键值可以是元组吗_python – 为同一个字典值创建可交换元组键...
  8. java中rhino什么用_使用require.js和Java / Rhino解析模块
  9. mysql 查询指定日期的上一周的最后一天
  10. spark稀疏向量与稠密向量