正在加载图片...
计算逆波兰式表示的算术或逻辑表达式比计算中缀式要 简单。这是因为计算逆波兰式不要比较运算符的优先级,只 要一遇到运算符就立即可以计算。具体实现中只要用一个栈 来存放运算对象,故该栈又称运算对象栈或运算分量栈。在 栈中存放未被计算的运算对象 旦扫描到运算符时,就 从栈中取出运算符所需的运算对象个数进行计算。然后再将 计算结果放入栈中,当全部扫描完逆波兰式后栈顶元素即为 最后的计算结果。 般算法语言除了算术表达式和逻辑表达式外,还有其 它如赋值语句、条件语句、循环语句等,但只要遵守运算对 象后直接紧跟计算它们的运算符这一规则,就可以很方便地 将逆波兰式扩充到整个算法语言。 例如,赋值语句<变量>:三<表达式>可改写为<变量><表达式 >:三; GOTO L改写成Lmp(其中jmp表示转移的运算符, L表示逆波兰式的编号或地址)。计算逆波兰式表示的算术或逻辑表达式比计算中缀式要 简单。这是因为计算逆波兰式不要比较运算符的优先级,只 要一遇到运算符就立即可以计算。具体实现中只要用一个栈 来存放运算对象,故该栈又称运算对象栈或运算分量栈。在 栈中存放未被计算的运算对象,当一旦扫描到运算符时,就 从栈中取出运算符所需的运算对象个数进行计算。然后再将 计算结果放入栈中,当全部扫描完逆波兰式后栈顶元素即为 最后的计算结果。 一般算法语言除了算术表达式和逻辑表达式外,还有其 它如赋值语句、条件语句、循环语句等,但只要遵守运算对 象后直接紧跟计算它们的运算符这一规则,就可以很方便地 将逆波兰式扩充到整个算法语言。 例如,赋值语句 <变量>:=<表达式>可改写为<变量><表达式 >:= ;GOTO L 改写成L jmp (其中jmp 表示转移的运算符, L表示逆波兰式的编号或地址)
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有