进制转换

括号匹配的检验

解决:遵循原则先进栈的后匹配,后进栈的先匹配右括号进栈,若匹配成功则出栈。

表达式求值
(由运算符优先级确定运算顺序的对表达式求值算法——算符优先算法)

为了实现表达式求值,需要设置两个栈:
- 一个是
算符栈OPTR,用于寄存运算符。 - 另一个称为
操作数栈OPND,用于寄存运算数和运算结果。
求值的处理过程是自左至右扫描表达式的每一个字符
-
当扫描到的是运算符,则将其压入栈OPND,
-
当扫描到的是运算符时
1.若这个运算符比OPTR栈顶运算符的优先级高,则入栈OPTR,继续向后处理
2.若这个运算符比OPTR栈顶运算符优先级低,则从OPND栈中弹出两个运算数,从栈OPTR中弹出栈顶运算符进行运算,并将运算结果压入栈OPND。 -
继续处理当前字符,直到遇到结束符为止。
舞伴问题

分析:先入队的男士或女士先出队配成舞伴,因此该问题具有典型的先进先出特性,可以用队列作为算法的数据结构。
- 首先构造两个队列
- 依次将队头元素出队配成舞伴
某队为空,则另外一队等待着则是下一个舞曲第一个可获得舞伴的人。

文章探讨了括号匹配的原理,利用栈来实现先进后出的原则进行匹配。同时介绍了基于运算符优先级的表达式求值算法,使用两个栈分别存储运算符和运算数。此外,还用队列解决了舞伴配对问题,展示了一种典型的应用场景。
970

被折叠的 条评论
为什么被折叠?



