C++实现栈中元素排序
来源:互联网 发布:淘宝3个月没卖出一件 编辑:程序博客网 时间:2024/05/17 00:08
题目:将一个栈中的元素排序,借助另外一个栈!
思路:将排序的栈每次出栈一个元素,第一次直接放入缓冲栈中,第二开始直至结束,每个出栈元素都需要跟缓冲栈里面元素比较找到排序位置(缓冲栈这个时候也需要吐栈可以考虑把元素放回到排序栈中待会再放回来),直到所有元素排序完毕。
#include <iostream>#include <stack>void sortStack(stack<int>& InputStack){ stack<int> Help;//定义一个暂时缓冲栈 while (!InputStack.empty()) { int CurValue = InputStack.top(); InputStack.pop(); while (!Help.empty() && CurValue > help.top())//在另外栈里面寻找插入位置 { InputStack.push(Help.top()); Help.pop(); } Help.push(CurValue ); } while (!Help.empty())//再把反序元素放回到原栈中 { int Val = Help.top(); InputStack.push(Val); Help.pop(); }}
在VS2015,中间(第二行)输出为缓冲栈结果,测试结果如下:
0 0
- C实现数组中元素的排序
- 实现栈中元素的排序
- C++实现栈中元素排序
- 栈中元素排序
- 双队列实现队列中元素排序
- 【C++】去除排序数组中重复的元素
- 排序元素--递归实现
- C# 实现List实例中实例元素的排序
- C程序:矩阵元素排序
- C 已排序的数组中一个元素,插入后排序不变
- Java 中 List 元素排序
- 数组中制定元素排序
- 递归实现栈中元素的逆序
- 实现在两个JList中元素移动and实现数据更改后排序
- 栈元素的排序
- 对栈元素排序
- c语言心得-----数组中对元素的操作排序,查找,插入,和删除
- 一个关于数组中满足条件的元素选择、及再次排序得c语言函数。
- Top 10 torrent sites
- 在有序数组中,统计某一元素出现的次数
- KM算法趣味讲解+模板
- margin塌陷问题与合并问题
- 好玩的API调用之---星座运势的API与爬虫爬取
- C++实现栈中元素排序
- LeetCode | 21. Merge Two Sorted Lists
- oj2325查找【数组】
- java 去英文单词出现的次数
- 1407: [Noi2002]Savage
- hdu1242优先队列+BFS
- 104. Maximum Depth of Binary Tree Add to List DescriptionHintsSubmissions
- jquery.pagination.js分页的使用
- Python 编程遇到的一些小问题 新手勿喷,嘻嘻