介绍
栈(Stack)是一种非常基础和常用的数据结构,它是一个只能在一端进行插入(称为“入栈”或“压栈”,通常记作 push 操作)和删除(称为“出栈”或“弹栈”,通常记作 pop 操作)的线性表。这种特殊的操作规则使得栈具有“后进先出”(Last In First Out, LIFO)的特点。
栈的基本操作包括:
- 初始化:创建一个空栈。
- 判断栈是否为空:检查栈中是否没有元素。
- 判满(如果适用的话):检查栈是否已达到其最大容量。
- 取栈顶元素:返回栈顶的元素但不删除它。这有时被称为“查看栈顶”或“peek”操作。
- 入栈(压栈):将元素添加到栈顶。
- 出栈(弹栈):移除并返回栈顶的元素。
实现举例
使用C语言数组或指针来实现栈。例如,用数组实现的顺序栈可以这样表示:
#define MAX_SIZE 100