c++堆栈
时间: 2023-06-29 09:08:14 浏览: 100
堆栈数据结构的c++实现
C++中堆栈(stack)是一种数据结构,它是一种“后进先出”(Last In First Out,LIFO)的线性结构。简单来说,就是最后压入的数据最先弹出。
堆栈的实现可以使用数组或链表。以下是基于数组的实现:
```c++
const int MAX_SIZE = 100; // 堆栈的最大大小
class Stack {
private:
int data[MAX_SIZE]; // 存储数据的数组
int top; // 栈顶指针
public:
Stack() { top = -1; } // 构造函数,栈顶指针初始化为-1
bool isEmpty() { return top == -1; } // 判断堆栈是否为空
bool isFull() { return top == MAX_SIZE - 1; } // 判断堆栈是否已满
void push(int x) { // 压入数据x
if (isFull()) {
cout << "Stack overflow!" << endl;
return;
}
top++;
data[top] = x;
}
int pop() { // 弹出栈顶元素
if (isEmpty()) {
cout << "Stack underflow!" << endl;
return -1;
}
int x = data[top];
top--;
return x;
}
int peek() { // 返回栈顶元素
if (isEmpty()) {
cout << "Stack is empty!" << endl;
return -1;
}
return data[top];
}
};
```
使用堆栈可以解决许多问题,如括号匹配、表达式求值等。
阅读全文