请使用C语言编程实现栈的基本操作,主要包括栈的创建、压栈栈和弹栈等基本操作
时间: 2024-12-01 14:30:18 浏览: 2
C语言对栈的实现基本操作
在C语言中,我们可以使用数组或者链表来实现栈的数据结构。这里我们以数组为例,展示栈的基本操作:
```c
#include <stdio.h>
#define MAX_SIZE 10
// 定义栈结构体
typedef struct {
int top;
int data[MAX_SIZE];
} Stack;
// 初始化栈
void init(Stack *s) {
s->top = -1;
}
// 判断栈是否已满
int isFull(Stack *s) {
return (s->top == MAX_SIZE - 1);
}
// 判断栈是否为空
int isEmpty(Stack *s) {
return (s->top == -1);
}
// 入栈(压栈)
void push(Stack *s, int value) {
if (!isFull(s)) {
s->data[++s->top] = value;
printf("元素 %d 入栈\n", value);
} else {
printf("栈已满,无法入栈\n");
}
}
// 出栈(弹栈)
int pop(Stack *s) {
if (!isEmpty(s)) {
return s->data[s->top--];
} else {
printf("栈为空,无法出栈\n");
return -1; // 返回特殊值表示错误
}
}
int main() {
Stack stack;
init(&stack);
// 使用栈
push(&stack, 5);
push(&stack, 10);
push(&stack, 15); // ... 进行更多压栈操作
int popped = pop(&stack);
if (popped != -1) {
printf("出栈元素: %d\n", popped);
}
return 0;
}
```
在这个例子中,我们首先初始化了一个栈并检查其状态。然后通过`push()`函数将元素添加到栈顶,如果栈满了就提示错误。`pop()`函数从栈顶取出元素,如果栈为空则返回特殊值表示错误。
阅读全文