数据结构003.pptVIP

  • 3
  • 0
  • 约8.51千字
  • 约 71页
  • 2016-11-28 发布于河南
  • 举报
数据结构003

如何从后缀式求值? 先找运算符, 再找操作数 例如: a b ? c d e / ? f ? + a?b d/e c-d/e (c-d/e)?f 如何从原表达式求得后缀式? 每个运算符的运算次序要由它之后的一个运算符来定,在后缀式中,优先数高的运算符领先于优先数低的运算符。 分析 “原表达式” 和 “后缀式”中的运算符: 原表达式: a + b ? c ? d / e ? f 后缀式: a b c ? + d e / f ? ? 从原表达式求得后缀式的规律为: 1) 设立操作数栈; 2) 设表达式的结束符为“#”, 予设运算符栈的栈底为“#”; 3) 若当前字符是操作数, 则直接发送给后缀式。 4) 若当前运算符的优先数高于栈顶运算符,则进栈; 5) 否则,退出栈顶运算符发送给后缀式; 6) “(” 对它之前后的运算符起隔离作用,“)”可视为自相应左括弧开始的表达式的结束符。 从原表达式求得后缀式的规律为: operandType evaluateExpression( ) { InitStack(OPTR); Push(OPTR, ?#?); InitStack(OPND); c=getchar(); while (c!=‘#’||GetTop(OPTR)!=‘#’) {

文档评论(0)

1亿VIP精品文档

相关文档