题目
设计算法以判断对输入序列1,2,3,…,n,序列 a1,a2,…,an 是否是该栈的合法输出序列。
思路
这里的“顺序”指输入序列的顺序。
判断合法栈的输出序列方法:对于相邻的两个数a1,a2,如果为升序,则记录下顺序小于a2而不等于a1,a2的数,压栈;如果为降序,则将a2与栈顶数进行比较,如果相等,则该部分正确;如果不相等,则整个序列错误。
代码
#include <iostream>
using namespace std;
const int maxlen = 100;
class Stack {
public:
Stack();
bool full() const;
bool empty() const;
void push(int x);
int top()const;
void pop();
private:
int count;