c语言用数组实现一个栈数据结构
时间: 2024-11-12 15:46:06 浏览: 28
在C语言中,可以使用一维数组来实现简单的栈数据结构。栈是一种遵循“后进先出”(Last In First Out, LIFO)原则的数据结构。以下是基本步骤:
1. 定义一个整型数组 `stack` 和两个变量 `top` 和 `size`。`top` 记录栈顶元素的位置,初始化为 `-1` 表示空栈;`size` 用于存储数组大小。
```c
int stack[STACK_SIZE]; // 定义一个固定大小的栈
int top = -1; // 栈顶指针初始值
```
2. **入栈** (Push):当需要添加元素到栈顶时,将新元素存放在 `stack[top + 1]` 位置,然后将 `top` 自增 1。
```c
void push(int value) {
if (top == STACK_SIZE - 1) {
printf("Stack overflow.\n");
return;
}
stack[++top] = value;
}
```
3. **出栈** (Pop):从栈顶移除并返回元素,更新 `top`。如果栈为空,则提示栈底溢出。
```c
int pop() {
if (top < 0) {
printf("Stack underflow.\n");
return -1; // 或者抛出异常
}
int value = stack[top--];
return value;
}
```
4. **查看栈顶元素** (Peek):获取栈顶元素但不移除它,同样检查是否为空。
```c
int peek() {
if (top < 0) {
printf("Stack is empty.\n");
return -1;
}
return stack[top];
}
```
5. **判断栈是否为空** (IsEmpty):检查 `top` 是否等于 `-1` 来确定。
```c
int isEmpty() {
return top == -1;
}
```
阅读全文
相关推荐

















