在C语言中,可以使用数组来实现堆栈的功能。堆栈是一种“后进先出”(Last-In-First-Out,LIFO)的数据结构,只允许在一端进行插入和删除操作,这一端被称为栈顶。
以下是使用数组实现堆栈的基本步骤:
以下是一个使用数组实现堆栈的示例代码:
#include <stdio.h>
#define MAX_SIZE 100
int stack[MAX_SIZE]; // 堆栈的存储空间
int top = -1; // 栈顶指针
void push(int data) {
if (top >= MAX_SIZE - 1) {
printf("Stack Overflow\n");
return;
}
stack[++top] = data;
}
int pop() {
if (top < 0) {
printf("Stack Underflow\n");
return -1;
}
return stack[top--];
}
int main() {
push(1);
push(2);
push(3);
printf("%d\n", pop()); // 输出3
printf("%d\n", pop()); // 输出2
printf("%d\n", pop()); // 输出1
printf("%d\n", pop()); // 输出Stack Underflow
return 0;
}
在这个示例代码中,我们定义了一个大小为100的数组作为堆栈的存储空间,并定义了栈顶指针top。push
函数用于插入元素,pop
函数用于删除元素。在main
函数中,我们先插入三个元素(1、2、3),然后依次删除元素并输出结果。当堆栈已满时,插入元素会输出"Stack Overflow";当堆栈为空时,删除元素会输出"Stack Underflow"。