0
点赞
收藏
分享

微信扫一扫

2022/2/16 数据结构与算法基础

大师的学徒 2022-02-17 阅读 62

青岛大学 王卓老师

栈 先进后出        stack

队列 先进先出

栈和队列是限定插入和删除只能在端点的线性表

 

栈的相关概念

1.定义:限定只能在我表的一端进行插入和删除运算的线性表(只能在栈顶操作)

2.逻辑结构:与同线性表相同,仍为一对一关系。

3.存储结构:用顺序栈和链栈存储均可,但以顺序栈更常见。

4.运算规则:只能在栈顶运算,访问时按照后进先出的原则。

5.实现方式:关键是编写入栈和出栈的函数,具体实现按照顺序栈和链栈的不同而不同。

队列的定义和特点:

1.定义只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表(头删尾插)

2.逻辑结构:与同线性表相同,仍为一对一关系。

3.存储结构:顺序队或者链队,以循环顺序队列更常见。

4.运算规则:只能在队首和队尾运算,且访问结点时按照先进先出的原则。

5.实现方式:关键是掌握入队和出队操作,具体实现依顺序队或链队的不同而不同。

案例:1.进制转换  栈的性质

2.括号匹配的检验   栈的性质 

3.表达式求值  栈的性质{

先设置两个栈

1.寄存运算符。OPTR

2.寄存运算数和运算结果 OPND

从左到右扫描表达式的每一个字符

*当扫描的是运算数,将其压入栈OPED

*当是运算符时,若这个运算符比OPED栈顶运算符高,则入栈OPTR,继续向后处理。

*如这个运算符优先级低,则从OPED中弹出两个运算符,从栈OPTR中弹出栈顶运算符进行运算,并将运算结果压入栈OPND中

*继续处理当前字符,知道遇到结束符为止
 

4.舞伴问题

 结束于2022/2/17                 p52    0:39

举报

相关推荐

0 条评论