《算法》第一章——栈的可生成性
来源:互联网 发布:钢铁力量天王战车数据 编辑:程序博客网 时间:2024/05/20 19:48
转自:http://blog.csdn.net/wangyl_gain/article/details/50449318------数据结构01--栈
题目:
用例程序会进行一系列入栈和出栈的混合操作。入栈操作会将整数0-9顺序压入栈中,判断出栈顺序是否正确。
例如:
- 入栈: 0- 1- 2- 3- 4- 5- 6- 7- 8- 9
- 出栈:4- 3 -2- 1 -0- 9 -8 -7- 6 -5 (正确)
- 出栈:4 -6 -8- 7- 5- 3- 2- 9 -0- 1(错误)
代码如下:
#include<iostream>#include<stack>using namespace std;bool stackCanGenerated(const int *pushS,const int *popS){ stack<int> s; int i,j; for(i = 0,j = 0;i < 10;i++) { s.push(pushS[i]); for(;!s.empty() && s.top() == popS[j];j++) { s.pop(); } } if(s.empty()) return true; else return false;}int main(void){ int pushSeq[10]; int popSeq[10]; for(int i = 0;i < 10;i++) { pushSeq[i] = i; } for(int i = 0;i < 10;i++) { int t; cin >> t; popSeq[i] = t; } cout << "ret-->" << stackCanGenerated(pushSeq,popSeq) << endl; return 0;}
0 0
- 《算法》第一章——栈的可生成性
- 算法 1.3.45 栈的可生成性
- 算法 1.3.46 栈的可生成性问题
- 算法导论——第一章
- 《算法》——第一章:基础
- 第一章 可伸展的语言
- 《算法》第一章——数组的局部最小元素
- 《算法》第一章——利用两个栈实现一个队列的push和pop操作
- 《算法》第一章——Dijkstra双栈表达式求值
- 【C++】【啊哈!算法】第一章——排序
- 读书笔记——《算法导论》第一章
- 【实现】《算法概论》P18 第一章 数字的算法——除法(图1-2)
- 《算法》第一章——仅用加减实现的二分查找
- 构造最小生成树的算法——Prim算法
- 算法导论1:第一章算法的作用
- 进阶篇,第一章:矿物的生成
- Spring实战——如何运行第一章的代码(如何生成一个可执行的jar包)
- 用jQuery生成可交互的表格——维护表格、设置表格分页
- 【LeetCode】120. Triangle
- spring和spring mvc的区别
- UVA 12166 dfs+Map库的巧用
- 2016年中国大学生程序设计竞赛(杭州) 部分题解
- 输入子系统(input subsystem)
- 《算法》第一章——栈的可生成性
- 我的JAVA日记 二
- js和jquery获取父级元素、子级元素、兄弟元素的方法
- 接口 IID 表
- hdu 2222 AC自动机入门
- LeetCode 395. Longest Substring with At Least K Repeating Characters
- html_Javascript制作简易计算器
- React Native学习专栏
- adb shell input keyevent值所对应的字符