数据结构中的堆和栈
学过数据结构的猿兄们都知道栈和堆,这可是基本的数据结构了。
栈(stack)
先说说栈吧。
栈是一种插入删除只能在一个地方的受限制的线性表。
这个位置就是表的一端(末端),被称为栈顶。
表的另一端称为栈底,栈底是不做处理的。
栈只能在一端插入删除,故而有后进先出(LIFO)的特点。
入栈被称为push,出栈被称为pop。
由于栈是特殊的线性表(都是逻辑结构),那么其存储结构就有顺序和链式两种,称为顺序栈和链栈。
下面分别是我用Java简单实现的两种结构:
顺序栈实现
链栈实现
以Java自身为例,Java就提供了java.util.Stack类,继承自Vector类(也就是说Java直接提供的是顺序栈),提供了下面的方法操作:
- push():入栈
- pop()&#x