C语言顺序栈的完整代码
时间: 2024-09-25 13:00:20 浏览: 105
C语言中,我们可以使用数组来实现顺序栈(也称为简单堆栈)。以下是一个基本的顺序栈实现示例:
```c
#include <stdio.h>
#define MAX_SIZE 50
typedef struct {
int top; // 栈顶指针
int data[MAX_SIZE]; // 存储数据的数组
} Stack;
// 初始化栈
void init(Stack* stack) {
stack->top = -1;
}
// 判断栈是否为空
int is_empty(Stack* stack) {
return stack- 1;
}
// 入栈操作(压入元素)
void push(Stack* stack, int value) {
if (is_full(stack)) {
printf("Stack is full.\n");
return;
}
stack->data[++stack->top] = value;
printf("Pushed element %d to the stack.\n", value);
}
// 出栈操作(弹出元素)
int pop(Stack* stack) {
if (is_empty(stack)) {
printf("Stack is empty.\n");
return -1; // 返回一个特殊的值表示空栈
}
return stack->data[stack->top--];
}
// 获取栈顶元素
int peek(Stack* stack) {
if (is_empty(stack)) {
printf("Stack is empty.\n");
return -1; // 同上,处理空栈情况
}
return stack->data[stack->top];
}
int main() {
Stack s;
init(&s);
push(&s, 1);
push(&s, 2);
push(&s, 3);
printf("Top element is: %d\n", peek(&s));
printf("Popped element is: %d\n", pop(&s));
return 0;
}
```
这个程序定义了一个简单的栈结构,并实现了初始化、判断空/满、入栈、出栈和查看栈顶元素的功能。
阅读全文