算法创建栈,输入栈c语言完整代码
时间: 2024-10-30 14:06:31 浏览: 14
在C语言中,我们可以使用数组或者链表来实现栈。这里是一个使用数组作为基本存储机制的简单栈的例子:
```c
#include <stdio.h>
#define MAX_SIZE 100 // 栈的最大容量
// 定义栈结构体
typedef struct {
int top; // 栈顶指针
int data[MAX_SIZE]; // 存储栈元素
} Stack;
// 初始化栈
void initialize(Stack* stack) {
stack->top = -1;
}
// 判断栈是否为空
int isEmpty(Stack* stack) {
return (stack->top == -1);
}
// 判断栈是否已满
int isFull(Stack* stack) {
return (stack->top == MAX_SIZE - 1);
}
// 入栈操作(压栈)
void push(Stack* stack, int value) {
if (!isFull(stack)) {
stack->top++;
stack->data[stack->top] = value;
} else {
printf("Stack Overflow\n");
}
}
// 出栈操作(弹栈)
int pop(Stack* stack) {
if (!isEmpty(stack)) {
int value = stack->data[stack->top];
stack->top--;
return value;
} else {
printf("Stack Underflow\n");
return -1; // 返回错误值,表示栈空了
}
}
// 主函数演示栈的使用
int main() {
Stack s;
initialize(&s);
push(&s, 1);
push(&s, 2);
push(&s, 3);
while (!isEmpty(&s)) {
int value = pop(&s);
printf("Popped Value: %d\n", value);
}
return 0;
}
```
这段代码首先定义了一个栈结构,然后实现了初始化、判断栈空和满、入栈和出栈等基本操作。在主函数中,我们演示了如何使用这些操作。
阅读全文