注:想查看其他有关数据结构知识,可点击链接 温故而知新 -> 数据结构 进行查看!
栈
概念
栈:(stack)又名堆栈,一种特殊的线性表,其只允许在 固定的一端 进行插入和删除元素操作。进行数据插入和删除操作的一端称为 栈顶,另一端称为 栈底。栈中的数据元素遵守 后进先出 LIFO(Last In First Out)
的原则。
结构
压栈:栈的插入 操作叫做进栈/压栈/入栈,入数据在栈顶。
出栈:栈的删除 操作叫做出栈。出数据也在栈顶。
栈中数据的插入或删除,遵守 后进先出 或 先进后出 原则,具体如下图
实现
栈的实现一般可以使用 数组 或者 链表 实现。
两种实现方式各有各的好处,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的代价比较小。
同时,栈 也分 定长的静态栈 和 动态增长的栈。但实际中常用的是动态增长的栈。因此,下面将附上动态增长的栈的实现代码。
结合 温故而知新->数据结构->顺序表->程序实现1_利用结构体 和 温故而知新->数据结构->顺序表->程序实现2_利用类 的 栈 的两种实现代码链接如下