C语言完整栈的初始化及基本操作代码
时间: 2023-08-22 08:03:36 浏览: 159
以下是C语言中完整的栈的初始化及基本操作代码:
```c
#define MAXSIZE 100 // 定义栈的最大容量
typedef struct {
int data[MAXSIZE];
int top; // 栈顶指针
} Stack;
// 初始化栈
void initStack(Stack *s) {
s->top = -1; // 栈顶指针初始化为-1,表示栈为空
}
// 判断栈是否为空
int isEmpty(Stack *s) {
return s->top == -1;
}
// 判断栈是否已满
int isFull(Stack *s) {
return s->top == MAXSIZE - 1;
}
// 进栈操作
int push(Stack *s, int x) {
if (isFull(s)) {
return 0; // 栈已满,不能再进栈
}
s->data[++(s->top)] = x;
return 1;
}
// 出栈操作
int pop(Stack *s, int *x) {
if (isEmpty(s)) {
return 0; // 栈已空,不能再出栈
}
*x = s->data[s->top--];
return 1;
}
// 获取栈顶元素
int getTop(Stack *s, int *x) {
if (isEmpty(s)) {
return 0; // 栈已空
}
*x = s->data[s->top];
return 1;
}
```
需要注意的是,栈的最大容量可以根据实际需要进行修改,不一定非得是100。此外,还可以根据具体需求添加其他操作,如清空栈、销毁栈等。
阅读全文