C语言实现顺序栈的基本操作及测试程序,并将测试过程及测试结果打印在终端上
时间: 2024-12-15 12:19:19 浏览: 11
在C语言中,我们可以创建一个简单的顺序栈结构,通常通过数组来实现。以下是一个基础的顺序栈实现,包含初始化、压栈(push)、弹栈(pop)、查看栈顶元素(top)和判断栈是否为空(is_empty)等基本操作:
```c
#include <stdio.h>
#define MAX_SIZE 10
typedef struct {
int data[MAX_SIZE];
int top;
} Stack;
// 初始化栈
void init(Stack *s) {
s->top = -1;
}
// 判断栈是否为空
int is_empty(const Stack *s) {
return (s->top == -1);
}
// 压栈(入栈)
void push(Stack *s, int value) {
if (s->top < MAX_SIZE - 1) {
s->data[++s->top] = value;
} else {
printf("Stack overflow.\n");
}
}
// 弹栈(出栈)
int pop(Stack *s) {
if (!is_empty(s)) {
return s->data[s->top--];
} else {
printf("Stack underflow.\n");
return -1;
}
}
// 查看栈顶元素
int peek(Stack *s) {
if (!is_empty(s)) {
return s->data[s->top];
} else {
printf("Stack is empty.\n");
return -1;
}
}
// 测试程序
int main() {
Stack stack;
init(&stack);
// 插入元素并检查栈的状态
push(&stack, 1);
push(&stack, 2);
push(&stack, 3);
printf("Top element: %d\n", peek(&stack)); // 输出:Top element: 3
printf("Popped element: %d\n", pop(&stack)); // 输出:Popped element: 3
printf("After pop: Top element = %d\n", peek(&stack)); // 输出:After pop: Top element = 2
return 0;
}
```
当运行这个测试程序时,你会看到栈的操作效果以及错误处理(如栈溢出和栈空的情况)。每次操作后,都会把相应的结果打印到终端。
阅读全文
相关推荐


















