前言
栈和队列是特殊的线性表,是操作受限的线性表,和线性表的运算规则不同。
一、栈
1、栈的定义及基本运算
1.栈的定义和特点
2、顺序栈的表示和实现
1.关于top初始值的问题
2.栈的基本操作:
(1)初始化——构造一个空栈
(2)入栈——在栈顶插入一个新元素
(3)出栈——删除栈顶元素
(4)获取——取栈顶元素的值
(5)判空——判断栈是否为空栈(栈空时为真true)
(6)求长度——求栈中数据元素的个数
(7)正序遍历——依次访问栈中每个元素
(8)销毁——销毁一个已存在的栈
若进栈的顺序为ijk,则出栈的顺序不可能是kij。
构造方法
进栈操作push
出栈pop
取栈顶元素getTop
其他操作
注意
3、链栈的表示和实现
1.定义
2.操作:
入栈push
出栈pop
取栈顶元素getTop
其他操作
4、栈的应用
- 为什么要设计堆栈?它有什么独特用途?
栈是嵌套调用机制的实现基础。用于:
①方法的嵌套调用;
②递归调用;
③CPU现场的保护和恢复。
- 递归思想
将大问题划分为若干个小问题,且小问题的解决方法与原问题相同或类似,只是规模变小了,直到问题的规模小到可以直接解决为止。
栈的应用举例
1.数制转换
2. 括号匹配的检验
3. 表达式求值
4、栈和线性表的异同
二、队列
1、队列的定义及基本运算
1.定义
2.队列的基本操作
2、循环队列
1.循环队列的顺序表示和实现
2.顺序循环队列的基本操作:
①构造方法
②入队操作
③出队操作
④取队头元素
⑤取队列长度
3、链队列
1.定义
2.基本操作:
①初始化
②判空
③进队
④出队