给定push序列,判断栈的pop序列
来源:互联网 发布:好用的安卓模拟器知乎 编辑:程序博客网 时间:2024/05/21 06:43
题目:输入两个整数序列,其中一个序列表示栈的push序列,判断另一个序列有没有可能是对应的pop序列。
思路:一直压栈,直至其top为pop序列的下标所指元素
于2012年7月17日凌晨所写:
#include <iostream>#include <stack>using namespace std;int sourceArray[] = {1, 2, 3, 4, 5};int destArray[] = {4, 5, 3, 2, 1};const int sourceSize = sizeof sourceArray / sizeof *sourceArray;const int destSize = sizeof destArray / sizeof *destArray;bool isStackOrder(int *sourceArray, int *destArray, int sourceSize, int destSize){bool result = false;if (sourceArray == NULL || destArray == NULL || sourceSize <= 0 || destSize <= 0|| sourceSize != destSize){return result;}stack<int> istack;int j = 0;for (int i = 0; i < sourceSize; i++){istack.push(sourceArray[i]);if (istack.top() == destArray[j]){j++;istack.pop();}}while (j != destSize){if (istack.top() != destArray[j]){result = false;break;}else{j++;istack.pop();}}if (j == destSize && istack.empty()){result = true;}return result;}void main(){bool result = isStackOrder(sourceArray, destArray, sourceSize, destSize);if (result == true){cout << "is stack order" << endl;}else{cout << "not stack order" << endl;}}
- 给定push序列,判断栈的pop序列
- 栈的push、pop序列
- 栈的push,pop序列
- 栈的push、pop序列
- 栈的push、pop序列
- 栈的push、pop序列
- 栈的push、pop序列
- 栈的push、pop序列
- 栈的push、pop序列
- 栈的push、pop序列
- 栈的push、pop序列
- 栈的push、pop序列
- 栈的push、pop序列
- 栈的push、pop序列
- 栈的push,pop序列
- 栈的push、pop序列
- 栈的push、pop序列
- 栈的push、pop序列
- 用户咨询中发现产品问题
- 佳人难再得
- QtInternal 之 QVariant
- 游戏地图编辑器,JAVA版简单实现
- 书写SQL时也获得智能提示
- 给定push序列,判断栈的pop序列
- 对话框相关(继续添加中)
- Drew嵌入式系统开发主业
- MFC用CButton实现带滚动条的图片显示控件,无须用CScrollBar辅助实现。
- poj 1410 || UVA 191 Intersection
- 开漏与推挽
- chm文件打不开的解决办法
- SQL分页语句
- Custom Splitter Window using MFC class CSplitterWnd