c++编程判断堆栈顺序
时间: 2023-12-08 09:35:01 浏览: 80
判断堆栈顺序可以使用一个辅助栈来模拟,具体步骤如下:
1. 定义一个辅助栈,用于模拟堆栈的操作。
2. 遍历给定的操作序列,对于每个操作:
- 如果是入栈操作,将元素压入辅助栈中。
- 如果是出栈操作,判断辅助栈是否为空,如果为空则返回 false,否则将辅助栈顶元素弹出并与出栈元素比较,如果不相等则返回 false。
3. 如果遍历完操作序列后辅助栈为空,则返回 true,否则返回 false。
以下是 C++ 代码实现:
```cpp
#include <stack>
#include <vector>
bool checkStackOrder(const std::vector<int>& pushOrder, const std::vector<int>& popOrder) {
std::stack<int> s;
int i = 0;
for (int x : pushOrder) {
s.push(x);
while (!s.empty() && s.top() == popOrder[i]) {
s.pop();
++i;
}
}
return s.empty();
}
```
阅读全文