zl-第章栈和队列-公开课件(精选).pptVIP

  • 0
  • 0
  • 约1.32万字
  • 约 57页
  • 2019-10-16 发布于广西
  • 举报
* (2)根据上述三条运算规则,在运算的每一步中,对任意相继出现的算符?1和?2 ,都要比较优先权关系。 算符优先法所依据的算符间的优先关系见教材P53表3.1 (是提供给计算机用的表!) 由表可看出,右括号 ) 和井号 # 作为?2时级别最低; 由c 规则得出: * ,/, + ,-为?1时的优先权低于‘(’,高于‘)’ 由a规则得出:‘(’=‘)’ 表明括号内运算,已算完。 ‘ # ’=‘ # ’ 表明表达式求值完毕。 栈的应用(表达式求值) * (3)算法思想: 设定两栈:操作符栈 OPTR ,操作数栈 OPND 栈初始化:设操作数栈 OPND 为空;操作符栈 OPTR 的栈底元素为表达式起始符 ‘#’; 依次读入字符:是操作数则入OPND栈,是操作符则要判断: if 栈顶元素操作符 ,则退栈、计算,结果压入OPND栈; 操作符 = 栈顶元素且不为‘#’,脱括号(弹出左括号); 栈顶元素操作符 ,压入OPTR栈。 栈的应用(表达式求值) * 栈的应用(表达式求值) OPTR OPND INPUT OPERATE 3*(7-2)# Push(opnd,’3’) # *(7-2)# 3 # Push(optr,’*’) #,* 3

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档