1. 建立顺序栈,并在顺序栈上实现入栈和出栈操作(验证性内容)。
时间: 2024-02-05 16:11:56 浏览: 96
栈的创建,入栈,出栈
5星 · 资源好评率100%
好的,我可以帮您编写一个顺序栈的示例代码,使用 C++ 语言实现,如下:
```cpp
#include <iostream>
using namespace std;
const int MAXSIZE = 100; // 定义栈的最大长度
template <typename T>
class SeqStack {
private:
T data[MAXSIZE]; // 栈中元素数组
int top; // 栈顶指针
public:
SeqStack() { top = -1; } // 构造函数,初始化栈顶指针为-1
bool push(T x); // 入栈操作
bool pop(T &x); // 出栈操作
bool isEmpty() { return top == -1; } // 判断栈是否为空
bool isFull() { return top == MAXSIZE - 1; } // 判断栈是否已满
};
template <typename T>
bool SeqStack<T>::push(T x) {
if (isFull()) {
cout << "Stack is full!" << endl;
return false;
}
data[++top] = x;
return true;
}
template <typename T>
bool SeqStack<T>::pop(T &x) {
if (isEmpty()) {
cout << "Stack is empty!" << endl;
return false;
}
x = data[top--];
return true;
}
int main() {
SeqStack<int> s; // 创建一个整型顺序栈
int x;
s.push(1);
s.push(2);
s.push(3);
while (!s.isEmpty()) {
s.pop(x);
cout << x << " ";
}
cout << endl;
return 0;
}
```
在上面的代码中,我们定义了一个 `SeqStack` 类来表示顺序栈,其中包含一个模板参数 `T` 表示栈中元素的类型,栈中元素的数组 `data` 以及栈顶指针 `top`。我们实现了 `push` 和 `pop` 两个操作,分别用于入栈和出栈,并且还实现了 `isEmpty` 和 `isFull` 两个方法,用于判断栈是否为空和是否已满。
在 `main` 函数中,我们创建了一个整型顺序栈,并依次将元素 1、2、3 入栈,然后通过出栈操作将它们依次弹出并输出。
希望上述代码可以帮助您理解如何实现顺序栈的基本操作。
阅读全文