堆栈
1. 堆栈(stack)是一个抽象的逻辑结构,顾名思义它是将对象堆放在一起,一个一个往上叠放,但要取出时,则只能从最上层拿取,不能从中间取出对象。
2. 堆栈的定义:堆栈是一个有序列表(ordered list),而且只能在一个特定的出入口进行数据的添加或删除。
3. 以集合的角度来看堆栈,则有以下定义:
如果集合 S = {a1,a2,...,ai,...,aj,...,an} 为一个堆栈,则称 a1 为栈底(bottom)元素,它是最早添加的数据;而 an 称为栈顶(top)元素,它是最后添加的。|S| = n,代表堆栈中有 n 个元素;如果n = 0, 代表空堆栈;如果堆栈的最大容量是 k (可放 k 个元素),则 n = k 时称为堆栈已满(full),即堆栈中不能再放入元素了,但可以取出元素。如果i < j,则表示 比 先被放入堆栈,取出时 aj 会比 ai 先被取出。
4. 加入元素到堆栈中称为推入(push),从堆栈中取出元素称为弹出(pop)。
5. 堆栈的应用: