1.栈:来自线性表数据结构,都是“操作受限、存储受限”的线性表
2.栈方式:
硬堆栈:利用寄存器实现,堆栈容量有限,但速度快
软堆栈:在内存中实现,堆栈容量可以达到很大,速度慢
3.栈(stack):是限制在表的一端进行插入和删除操作的线性表,又称为先入后出线性表
栈顶(top):允许进行插入、删除操作的一端,称为表尾。用栈顶指针(top)来指示栈顶元素
栈底(bottom):是固定端,又称表头
空栈:当表中没有元素时称为空栈
4.栈的顺序存储:
用一维数组来存储栈,根据数组是否可以根据需求增大,可分为静态顺序栈和动态顺序栈
静态顺序栈:实现简单,存储空间固定不变
top=Maxsize-1时栈满 , top=0表示栈空(原因:1、数组 2、存入数据就不会再改变)
top=0 栈底
top 指向栈顶
进栈:先放后加
出栈:先出后减
元素个数:top+1
动态顺序栈:实现稍微复杂,存储空间根据需要随时扩容
top=栈顶 ,bottom=栈底 , top=bottom 栈空
栈满:内存溢出/无连续空间