3.6-栈内部排序
来源:互联网 发布:农业银行软件官方下载 编辑:程序博客网 时间:2024/06/05 02:45
Write a program to sort a stack in ascending order. You should not make any assumptions about how the stack is implemented. The following are the only functions that should be used to write this program: push | pop | peek | isEmpty.
感觉用堆来做会比较简单。但是书上的意思是用另外一个栈来实现。
从原始栈pop出来的value需要和新的栈顶去比较,如果大的话就直接push,小的话就要将new_stk比他大的全部pop出来并push回原始栈。
#include <iostream>#include <stack>using namespace std;stack<int> stack_sort(stack<int> origin_stk){ stack<int> new_stk; while(!origin_stk.empty()) { int temp = origin_stk.top(); origin_stk.pop(); while(!new_stk.empty()&& new_stk.top()>temp) { origin_stk.push(new_stk.top()); new_stk.pop(); } new_stk.push(temp); } return new_stk;}int main(){ stack<int> origin_stk; origin_stk.push(2); origin_stk.push(3); origin_stk.push(1); origin_stk.push(4); stack<int> new_stk = stack_sort(origin_stk); while(!new_stk.empty()) { cout << new_stk.top() << endl; new_stk.pop(); } return 0;}
0 0
- 3.6-栈内部排序
- 内部排序
- 内部排序
- 内部排序
- 内部排序
- 内部排序
- 内部排序
- 内部排序
- 内部排序
- 内部排序
- 内部排序
- 内部排序
- 内部排序
- 内部排序
- 内部排序
- 内部排序
- 内部排序
- 内部排序
- Javascript 装载和执行 浏览器的渲染原理简介
- Linux下配置Tomcat
- linux编译
- 黑客教程
- JavaScript学习三 window,document对象
- 3.6-栈内部排序
- volatile,可变参数,memset,内联函数,宽字符窄字符,国际化,条件编译,预处理命令,define中##和#的区别,文件缓冲,位域
- 多校练习赛 第五场
- ConcurrentHash Map 深入分析 (锁分离,提高效率,final key ,next域 保持线程安全)
- hd 2009 求数列的和
- For Fans of Statistics——vector
- Objective-c中的占位符,打印BOOL类型数据
- virtualbox for mac安装
- 线段树