栈的顺序存储结构c++
时间: 2023-10-22 13:07:31 浏览: 39
以下是使用 C++ 实现栈的顺序存储结构的代码示例:
```cpp
#include <iostream>
using namespace std;
const int MAX_SIZE = 100; // 定义栈的最大容量
class Stack {
private:
int data[MAX_SIZE]; // 存储栈元素的数组
int top_index; // 栈顶元素的下标
public:
Stack() { top_index = -1; } // 构造函数,初始化栈顶下标为-1
bool push(int value);
bool pop();
int top();
bool empty();
bool full();
};
bool Stack::push(int value) {
if (full()) {
cout << "栈已满,无法插入元素!" << endl;
return false;
} else {
top_index++;
data[top_index] = value;
return true;
}
}
bool Stack::pop() {
if (empty()) {
cout << "栈已空,无法弹出元素!" << endl;
return false;
} else {
top_index--;
return true;
}
}
int Stack::top() {
if (empty()) {
cout << "栈已空,无法获取栈顶元素!" << endl;
return -1;
} else {
return data[top_index];
}
}
bool Stack::empty() {
return top_index == -1;
}
bool Stack::full() {
return top_index == MAX_SIZE - 1;
}
int main() {
Stack s; // 创建一个栈对象
s.push(1);
s.push(2);
s.push(3);
s.pop();
cout << s.top() << endl;
return 0;
}
```
在上面的代码中,我们使用数组来存储栈中的元素,使用 top_index 变量记录栈顶元素的下标,根据 top_index 的值来判断栈是否为空或已满。push() 方法用来向栈中插入元素,pop() 方法用来弹出栈顶元素,top() 方法用来获取栈顶元素,empty() 方法用来判断栈是否为空,full() 方法用来判断栈是否已满。在 main() 函数中,我们创建了一个栈对象 s,然后对栈进行了一些操作。