怎么用c语言创建一个顺序栈:1,2,3,4
时间: 2024-10-20 08:19:07 浏览: 41
在C语言中,我们可以使用数组来实现一个简单的顺序栈。这里是一个基本的例子,我们首先定义一个栈结构体,包含一个数组用于存储元素以及栈顶指针:
```c
#include <stdio.h>
#define MAX_SIZE 10
typedef struct {
int data[MAX_SIZE]; // 栈的数组
int top; // 栈顶指针
} Stack;
// 初始化栈
void init(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 item) {
if (isFull(stack)) {
printf("Stack is full.\n");
return;
}
stack->data[++stack->top] = item;
}
// 出栈操作 (弹栈)
int pop(Stack* stack) {
if (isEmpty(stack)) {
printf("Stack is empty.\n");
return -1; // 返回一个特殊值表示栈空
}
return stack->data[stack->top--];
}
// 示例:初始化栈并入栈1, 2, 3, 4
int main() {
Stack myStack;
init(&myStack);
push(&myStack, 1);
push(&myStack, 2);
push(&myStack, 3);
push(&myStack, 4);
while (!isEmpty(&myStack)) {
int item = pop(&myStack);
printf("%d\n", item);
}
return 0;
}
```
在这个例子中,我们实现了栈的基本操作:初始化、判断栈是否为空/满、入栈和出栈。注意,为了简化示例,我们假设栈总是能够容纳整数。实际应用中,你可能需要调整数据类型的大小限制。
阅读全文