C++ 使用一个栈实现另一个栈的排序
来源:互联网 发布:淘宝买k粉暗语 编辑:程序博客网 时间:2024/04/27 17:09
#include <iostream>
#include <stack>
void print(std::stack<int> &stk);
void sort(std::stack<int> &stack);
int main()
{
std::stack<int> stk; //help 栈底存储数值比较大的, stk栈底存储比较小的
int arr[8] = { 2, 5, 1, 15, 19, 11, 25, 17 };
int *beg = std::begin(arr);
int *end = std::end(arr);
while (beg != end)
{
stk.push(*beg++);
}
std::cout << "Before sort: " << std::endl;
print(stk);
beg = std::begin(arr);
while (beg != end)
{
stk.push(*beg++);
}
sort(stk);
std::cout << "After sort: " << std::endl;
print(stk);
system("pause");
return 0;
}
void print(std::stack<int> &stk)
{
while (!stk.empty())
{
std::cout << stk.top() << std::endl;
stk.pop();
}
}
void sort(std::stack<int> &stack)
{
if (stack.empty())
{
return;
}
std::stack<int> help;
int cur = 0;
while (!stack.empty())
{
cur = stack.top();
stack.pop();
while (!help.empty())
{
if (cur > help.top())
{
stack.push(help.top());
help.pop();
}
else
break;
}
help.push(cur);
}
while (!help.empty())
{
stack.push(help.top());
help.pop();
}
}
#include <stack>
void print(std::stack<int> &stk);
void sort(std::stack<int> &stack);
int main()
{
std::stack<int> stk; //help 栈底存储数值比较大的, stk栈底存储比较小的
int arr[8] = { 2, 5, 1, 15, 19, 11, 25, 17 };
int *beg = std::begin(arr);
int *end = std::end(arr);
while (beg != end)
{
stk.push(*beg++);
}
std::cout << "Before sort: " << std::endl;
print(stk);
beg = std::begin(arr);
while (beg != end)
{
stk.push(*beg++);
}
sort(stk);
std::cout << "After sort: " << std::endl;
print(stk);
system("pause");
return 0;
}
void print(std::stack<int> &stk)
{
while (!stk.empty())
{
std::cout << stk.top() << std::endl;
stk.pop();
}
}
void sort(std::stack<int> &stack)
{
if (stack.empty())
{
return;
}
std::stack<int> help;
int cur = 0;
while (!stack.empty())
{
cur = stack.top();
stack.pop();
while (!help.empty())
{
if (cur > help.top())
{
stack.push(help.top());
help.pop();
}
else
break;
}
help.push(cur);
}
while (!help.empty())
{
stack.push(help.top());
help.pop();
}
}
阅读全文
0 0
- C++ 使用一个栈实现另一个栈的排序
- 【栈】用一个栈来实现另一个栈的排序
- 用一个栈实现另一个栈的排序
- 用一个栈实现另一个栈的排序
- 数据结构5 用一个栈实现另一个栈的排序
- 用一个栈实现另一个栈的排序
- 用一个栈来实现另一个栈的排序
- 1_5用一个栈实现另一个栈的排序
- 用一个栈实现另一个栈的排序
- 用一个栈实现另一个栈的排序
- 用一个栈实现另一个栈的排序
- 用一个栈实现另一个栈的排序
- 004使用一个栈对另一个栈完成排序(C++实现)
- 栈和队列之用一个栈实现另一个栈的排序
- 栈和队列(5)——用一个栈实现对另一个栈的排序
- 1栈和队列--用一个栈实现另一个栈的排序
- 栈和队列——用一个栈实现另一个栈的排序
- 栈和队列 用一个栈实现另一个栈的排序
- ResourceLoader
- Junit Test类报错Class not found XXX
- Xamarin.Forms 用户界面——动画——放松功能
- FisherVector编码的来龙去脉
- 饿了么项目(一)
- C++ 使用一个栈实现另一个栈的排序
- 设计模式-装饰模式-decorator-python
- selinux的初级管理
- 小菜鸟的我,今天竟然解决了一个maven项目404的问题!给自己一个大大的赞!
- Xamarin.Forms 用户界面——动画——自定义动画
- 主机上有多个网卡用java指定获取某一个网卡ip的问题
- Borg Maze (bfs+最小生成树)
- 技术分享:杂谈如何绕过WAF(Web应用防火墙)
- webstorm 激活码