顺序栈的入栈和出栈的源代码
时间: 2024-09-15 10:13:13 浏览: 42
顺序栈入栈出栈实现源码
5星 · 资源好评率100%
顺序栈是一种基础的数据结构,它遵循“后进先出”(Last In First Out,LIFO)的原则。在计算机程序中,你可以通过数组实现顺序栈。以下是使用C语言编写的简单顺序栈的入栈(push)和出栈(pop)操作的源代码:
```c
#include <stdio.h>
#define MAX_SIZE 100
typedef struct {
int top; // 栈顶指针
int data[MAX_SIZE]; // 存储数据的数组
} Stack;
// 初始化栈
void init(Stack* stack) {
stack->top = -1;
}
// 入栈操作
void push(Stack* stack, int value) {
if (stack->top >= MAX_SIZE - 1) { // 判断栈是否已满
printf("Stack is full.\n");
return;
}
stack->top++; // 栈顶指针加一
stack->data[stack->top] = value; // 插入元素
}
// 出栈操作
int pop(Stack* stack) {
if (stack->top == -1) { // 判断栈是否为空
printf("Stack is empty.\n");
return -1; // 返回一个特殊值表示空栈
}
int value = stack->data[stack->top]; // 获取栈顶元素
stack->top--; // 栈顶指针减一
return value; // 返回并移除栈顶元素
}
// 主函数演示
int main() {
Stack s;
init(&s);
push(&s, 10);
push(&s, 20);
push(&s, 30);
int popped_value = pop(&s);
printf("Popped value: %d\n", popped_value);
return 0;
}
```
这个示例展示了基本的顺序栈操作,但在实际应用中,你可能需要添加更多的错误检查和边界处理。
阅读全文