一起学数据结构之栈和队列(上)
这两天我们要学习的内容是栈和队列板块,栈和队列板块分为两讲,第一讲也就是今天我们主要学习栈的相关知识,包括栈的定义、栈的顺序表示及实现,栈的链式表示,栈的应用举例,以及栈递归的实现。
今日的重难点部分,重点为栈的特点,顺序栈和链栈上的基本运算的算法实现;难点为灵活运用栈设计解决应用问题的算法。
日常小清新,一句暖暖的话:
”你帮助了迷路的我。如果能实现,我想带你去看绚烂的山河,绮丽的溪谷,这份心情,人类该如何称呼呢?“——夏目友人帐
一、栈
1.)栈的定义
- 栈(stack):限定仅在表尾进行插入或者删除操作的线性表。
- 栈顶(top):表尾断,退栈的第一个元素为栈顶元素
- 栈低(bottom):表头端
- 空栈:不含元素的空表
- LIFO结构:后进先出(last in first out)结构
2.)栈的基本操作
- InitStack(s).初始化栈,即设空栈
- Emptys(s).判断栈是否为空栈,若是则返回1,否则返回0.
- Push(s,x).进栈操作,在栈S的栈顶插入元素x.
- Pop(s,x).出栈操作,若栈s不为空,将栈顶元素赋给x,并从栈中删除当前栈顶元素。