栈和队列也是线性表,限制插入和删除的位置只能在端点
栈(stack)
后进先出 LIFO 表尾进入,表尾删除
一、案例
案例一:进制转换
例子
159转换成八进制
159/8=19...7
19/8=2...3
2/8=0...2
结果为237
案例二:括号匹配的检验
左括号先入栈,右括号有匹配的话与左括号一起出栈
案例三:表达式求值
算符优先算法
二、栈类型定义
三、栈的操作
初始化
销毁栈
判断栈是否为空
求栈的长度
清空栈
入栈Push
出栈Pop
四、链栈
链栈初始化
判断链栈是否为空
链栈的入栈
链栈的出栈
取栈顶元素
五、栈和递归
求n的阶乘
队列(queue)
先进先出 FIFO 表尾进入,表头删除
案例一:舞伴问题
一、存在的问题
假上溢
循环队列
让front变成零 %6
判断队空队满
二、操作实现
初始化
求队列长度
入队
出队
取队头元素
三、链队的表示和实现
链队初始化
销毁
入队
出队
求队头元素