用c语言实现顺序栈的初始化、进栈、出栈、获取栈顶元素
时间: 2024-10-13 20:02:44 浏览: 111
shunxubiao.rar_栈的顺序表_顺序栈,出栈
在C语言中,可以使用数组或动态内存分配的方式实现顺序栈(基于数组的栈)。这里我会给你展示如何使用数组来实现基本操作:
```c
#include <stdio.h>
#define MAX_SIZE 100 // 定义栈的最大容量
// 定义栈结构体
typedef struct {
int data[MAX_SIZE]; // 存储数据的数组
int top; // 栈顶指针
} Stack;
// 初始化栈
void init(Stack *s) {
s->top = -1; // 栈顶初始为空
}
// 进栈(压入)
void push(Stack *s, int value) {
if (s->top < MAX_SIZE - 1) { // 检查是否已满
s->data[++s->top] = value;
} else {
printf("Stack is full.\n");
}
}
// 出栈(弹出)
int pop(Stack *s) {
if (s->top == -1) { // 检查是否为空
printf("Stack is empty.\n");
return -1; // 返回特殊值表示空栈
} else {
return s->data[s->top--]; // 返回并移动栈顶指针
}
}
// 获取栈顶元素(不修改栈)
int peek(Stack *s) {
if (s->top == -1) {
printf("Stack is empty.\n");
return -1; // 空栈处理
} else {
return s->data[s->top]; // 返回栈顶元素
}
}
阅读全文