栈(stack)是限定仅在表尾进行插入或删除操作的线性表。因此,对栈来说,表尾端有其特殊含义,称为栈顶(top),相应的,表头端称为栈底(bottom)。不含元素的空表称为空栈。
假设栈S=(a1, a2, ….,a3),则称a1为栈底元素,an为栈顶元素,栈中元素按a1,a2,…,an的次序进栈,退栈的第一个元素应该为栈顶元素。换句话说,栈的修改是按照先进后出的原则进行的,因此,栈又称为先进后出的线性表,(简称LIFO)结构,它的具体操作图示如下:
和线性表类似,栈也有两种存储表示
1、顺序栈,即栈的顺序存储结构是利用一组地址连续的存储单元依次存储自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的为位置。通常的习惯做法是以top = -1表示栈为空。
2、链式栈:我会在下一篇博客里介绍。嘿嘿
下面晒出我的顺序栈的综合操作的代码,仅供参考学习。