C语言实现栈——用数组实现
栈(Stack)是计算机科学中的一种抽象数据类型,它的特点是“后进先出”(Last In First Out,简称LIFO)。栈在内存中通常被实现为一段连续的地址空间,有一个指针指向栈顶。
本文将演示如何用C语言实现栈,采用了数组的方式存储元素,同时提供了基本的入栈、出栈、获取栈顶元素和判断栈是否为空等操作。
以下是完整的C代码实现:
#include <stdio.h>
#define MAX_SIZE 100 // 定义栈的最大长度
int stack[MAX_SIZE]; // 栈的数组
int top = -1; // 栈顶指针,初始化为-1
// 判断栈是否为空
int is_empty() {
return top == -1;
}
// 判断栈是否已满
int is_full() {
return top == MAX_SIZE - 1;
}
// 将元素压入栈中
void push(int value) {
if (is_full()) {
printf("Error: Stack is full\n");
return;
}
top++;
stack[top] = value;
}
// 将栈顶元素弹出
void pop() {
if (is_empty()) {
printf("Error: Stack is empty\n");
return;
}
top--;
}
// 获取栈顶元素
int peek() {
if (is_empty()) {
printf