实现栈的基本操作,初始化栈:六项基本操作的机制是:初始化栈:init stack(S);判断栈空stack empty(S);取栈顶元素:stack top(S,x);入栈:push stack(S,x);出栈pop stack(S);判断栈满:stack full(S)
时间: 2024-05-01 16:16:26 浏览: 42
栈的基本操作的实现
以下是栈的基本操作的C++实现:
```c++
const int MAX_SIZE = 100; // 栈的最大容量
// 栈的结构体
struct Stack {
int data[MAX_SIZE]; // 存储栈元素的数组
int top; // 栈顶指针
};
// 初始化栈
void init(Stack &S) {
S.top = -1; // 初始时栈顶指针为-1,表示栈为空
}
// 判断栈空
bool empty(Stack &S) {
return S.top == -1; // 栈空的条件是栈顶指针为-1
}
// 取栈顶元素
bool top(Stack &S, int &x) {
if (empty(S)) return false; // 栈空,返回false
x = S.data[S.top]; // 取栈顶元素
return true;
}
// 入栈
bool push(Stack &S, int x) {
if (S.top == MAX_SIZE - 1) return false; // 栈满,返回false
S.top++; // 栈顶指针加1
S.data[S.top] = x; // 将x入栈
return true;
}
// 出栈
bool pop(Stack &S) {
if (empty(S)) return false; // 栈空,返回false
S.top--; // 栈顶指针减1
return true;
}
// 判断栈满
bool full(Stack &S) {
return S.top == MAX_SIZE - 1; // 栈满的条件是栈顶指针等于MAX_SIZE-1
}
```
阅读全文