数据结构与算法——栈的顺序存储结构学习(1)

数据结构与算法——栈的顺序存储结构学习(1)
数据结构与算法——栈的顺序存储结构学习(1)
栈顶(Top)
允许插入和删除的一端
栈底(Bottom)
和栈顶相反的一端
空栈
不含任何数据元素的栈

栈是后进先出的线性表(LIFO 结构)
数据结构与算法——栈的顺序存储结构学习(1)
栈,这个线性表的插入和删除位置:栈底是固定的,最先进栈的只能在栈底

栈的插入操作→ 进栈(压栈、入栈)
栈的删除操作→ 出栈(弹栈)
数据结构与算法——栈的顺序存储结构学习(1)
在不是所有元素都进栈的情况下:
事先技巧你的元素也可以出栈,只要保证是栈顶元素的出栈就可以了
eg. 现在有3个整数数学元素:1、2、3 依次进栈,会有哪些出战次序?
数据结构与算法——栈的顺序存储结构学习(1)
数据结构与算法——栈的顺序存储结构学习(1)
插入操作:push → 进栈
删除操作:pop → 出栈
栈本身就是一个线性表
数据结构与算法——栈的顺序存储结构学习(1)

栈的顺序存储结构
栈中存在一个元素时,top = 0
空栈的判定条件为,top = -1
数据结构与算法——栈的顺序存储结构学习(1)
进栈
数据结构与算法——栈的顺序存储结构学习(1)
出栈
数据结构与算法——栈的顺序存储结构学习(1)
数据结构与算法——栈的顺序存储结构学习(1)

两栈共享空间
需要通过编程手段来扩展数组的容量
数组有两个端点,两个栈有两个栈底
让一个栈的栈底为数组的始端,即下表为 0 处
另一个栈为栈的末端,即下标为数组的长度 n-1 处
即 两个栈如果增加元素,就是两端点向中间延伸
数据结构与算法——栈的顺序存储结构学习(1)