给我c语言写的顺序栈的完整源代码
时间: 2024-10-20 07:18:54 浏览: 0
在C语言中,我们可以创建一个简单的顺序栈结构,它基于数组实现。下面是一个基本的顺序栈(仅包含压栈、弹栈和判断栈是否为空的操作)的源代码示例:
```c
#include <stdio.h>
#define MAX_SIZE 100
typedef struct {
int top;
int data[MAX_SIZE];
} Stack;
// 初始化栈
void init(Stack *s) {
s->top = -1;
}
// 判断栈是否为空
int is_empty(Stack *s) {
return s->top == -1;
}
// 将元素压入栈顶
void push(Stack *s, int value) {
if (s- 1)) {
printf("Stack overflow.\n");
return;
}
s->top++;
s->data[s->top] = value;
}
// 弹出栈顶元素(如果栈非空)
int pop(Stack *s) {
if (is_empty(s)) {
printf("Stack underflow.\n");
return -1;
}
int value = s->data[s->top];
s->top--;
return value;
}
int main() {
Stack my_stack;
init(&my_stack);
// 测试压栈和弹栈
push(&my_stack, 5);
push(&my_stack, 10);
printf("Top element is: %d\n", pop(&my_stack)); // 输出应为10
return 0;
}
```
这个栈并不包含检查栈满的操作,实际应用中,你可能需要添加这样的检查。此外,这只是一个基础版本,如果你需要其他功能,如获取栈顶元素而不删除等,可以适当扩展。
阅读全文