栈
#include <iostream>
using namespace std;
//栈的最大容量
const int MAXSIZE = 100;
//结构体定义
struct Stack {
int data[MAXSIZE];
int top;
};
//初始化栈
void init(Stack& s) {
s.top = -1;
}
//判断栈是否为空
bool empty(Stack& s) {
return s.top == -1;
}
//判断栈是否已满
bool full(Stack& s) {
return s.top == MAXSIZE - 1;
}
//入栈
void push(Stack& s, int value) {
if (full(s)) {
cout << "栈已满" << endl;
return;
}
s.top++;
s.data[s.top] = value;
}
//出栈
void pop(Stack& s) {
if (empty(s)) {
cout << "栈为空" << endl;
return;
}
s.top--;
}
//获取栈顶元素
int top(Stack& s) {
if (empty(s)) {
cout << "栈为空" << endl;
return -1;
}
return s.data[s.top];
}
//输出栈中所有元素
void print(Stack& s) {
cout << "栈中所有元素:";
for (int i = s.top; i >= 0; i--) {
cout << s.data[i] << " ";
}
cout << endl;
}
评论区