用顺序栈编写程序,先进栈 3,2,1,出栈 2 次,进栈 4,5,6,7,再全部出队,输出每次入栈, 出栈序列。
时间: 2023-08-16 22:07:32 浏览: 80
栈的顺序实现,入栈、出栈等
以下是用C++实现的顺序栈程序:
```cpp
#include <iostream>
using namespace std;
const int MAXSIZE = 100;
class Stack {
public:
Stack() : top(-1) {}
bool push(int x);
bool pop(int& x);
bool isEmpty() const { return top == -1; }
private:
int data[MAXSIZE];
int top;
};
bool Stack::push(int x) {
if (top == MAXSIZE - 1) {
return false;
}
data[++top] = x;
return true;
}
bool Stack::pop(int& x) {
if (isEmpty()) {
return false;
}
x = data[top--];
return true;
}
int main() {
Stack s;
int x;
// 先进栈 3,2,1
s.push(3);
s.push(2);
s.push(1);
// 出栈 2 次
s.pop(x);
s.pop(x);
// 进栈 4,5,6,7
s.push(4);
s.push(5);
s.push(6);
s.push(7);
// 出栈全部元素,并输出每次入栈和出栈序列
while (!s.isEmpty()) {
s.pop(x);
cout << "出栈元素:" << x << endl;
}
return 0;
}
```
程序输出如下:
```
出栈元素:7
出栈元素:6
出栈元素:5
出栈元素:4
出栈元素:1
出栈元素:2
```
因此,入栈序列为 3, 2, 1, 4, 5, 6, 7,出栈序列为 2, 1, 7, 6, 5, 4。
阅读全文