c语言中,顺序栈的入栈操作和出栈操作代码实现
时间: 2024-10-16 19:06:28 浏览: 52
在 C 语言中,顺序栈通常是一个数组结构实现的,因为数组可以提供连续的内存空间,方便我们进行简单的插入和删除操作。这里我会给出基本的顺序栈的入栈(push)和出栈(pop)操作的代码实现:
```c
#include <stdio.h>
// 定义栈的最大容量
#define MAX_SIZE 50
// 结构体表示栈的元素
typedef struct {
int data[MAX_SIZE]; // 存储数据的数组
int top; // 栈顶指针
} Stack;
// 初始化栈
void init(Stack *s) {
s->top = -1;
}
// 判断栈是否已满
int is_full(Stack *s) {
return (s->top == MAX_SIZE - 1);
}
// 判断栈是否为空
int is_empty(Stack *s) {
return (s->top == -1);
}
// 入栈操作(push)
void push(Stack *s, int item) {
if (is_full(s)) {
printf("Stack overflow!\n");
return;
}
s->data[++(s->top)] = item;
}
// 出栈操作(pop)
int pop(Stack *s) {
if (is_empty(s)) {
printf("Stack underflow!\n");
return -1; // 返回一个特殊值表示栈空
}
return s->data[s->top--];
}
int main() {
Stack s;
init(&s);
push(&s, 10); // 入栈10
push(&s, 20); // 入栈20
printf("Top element: %d\n", pop(&s)); // 出栈并打印结果
return 0;
}
```
阅读全文