跳到主要内容

定义

从逻辑上来看,栈也是一个线性表,数据直接呈一对一的关系。栈实际上是操作受限的线性表,只允许从栈顶插入元素(称为入栈),只允许从栈顶删除元素(称为出栈)。

栈

代码实现

#include<iostream>
using namespace std;

const int N = 100010;

class Stack {
public:
// 构造函数
Stack() {
top = 0;
}
// 判断是否为空
bool isEmpty() {
return top == 0;
}
// 判断是否为满
bool isFull() {
return top == N;
}
// 向栈顶插入一个数
bool push(int x) {
if(isFull()) return false;
data[top++] = x;
}
// 删除栈顶元素
bool pop() {
if(isEmpty()) return false;
top--;
}
// 查询栈顶元素
int queryTop() {
return data[top - 1];
}
private:
int data[N];
int top;
};

相关题目

Acwing:模拟栈

Acwing:表达式求值