中缀表示法的缺陷 6 口中缀形式:x+yk+3 口有3种解释: ▣(x+y)/(x+3) ▣x+yx+3 ▣x+y/(x+3) 不同的根树有相同的中 缀形式。 X 3 前缀与后缀则具有唯一性
中缀形式:x+y/x+3 有3种解释: (x+y)/(x+3) x+y/x+3 x+y/(x+3) x + y / x 3 + 3 x + y x / + x 3 + / y x + 不同的根树有相同的中 缀形式。 前缀与后缀则具有唯一性 6 中缀表示法的缺陷
前缀表示法(波兰表示法) ▣(c+y)/(x+3) ▣/+Xy+x3 ▣x+yx+3 ▣++Xhx3 ▣x+y/(x+3) ▣+xy+x3 从右向左,遇到运算符,对右边 紧接着的2个运算对象进行运算
(x+y)/(x+3) /+xy+x3 x+y/x+3 ++x/yx3 x+y/(x+3) +x/y+x3 x + y / x 3 + 3 x + y x / + x 3 + / y x + 从右向左,遇到运算符,对右边 紧接着的2个运算对象进行运算 7 前缀表示法(波兰表示法)
后缀表示法(逆波兰表示法) 8 ▣(c+y)/(x+3) ▣Xy+x3+/ ▣x+yx+3 ▣Xx/+3+ ▣x+y/(x+3) ▣x3+/+ 从左向右,遇到运算符,对左边 紧接着的2个运算对象进行运算
(x+y)/(x+3) xy+x3+/ x+y/x+3 xyx/+3+ x+y/(x+3) xyx3+/+ x + y / x 3 + 3 x + y x / + x 3 + / y x + 从左向右,遇到运算符,对左边 紧接着的2个运算对象进行运算 8 后缀表示法(逆波兰表示法)
例 9 o (a*(b+c+d*(e*f)/g+(h-i)*j) 0 逆波兰表示: abc+*def**+ghi-j*+/ 从左往右,遇到运算符,根据运算 符所需运算分量个数确定前面的 元素作为运算分量。 不需要括弧唯一地表示计算顺序
(a*(b+c)+d*(e*f))/(g+(h-i)*j) 逆波兰表示: abc+*def**+ghi-j*+/ 从左往右,遇到运算符,根据运算 符所需运算分量个数确定前面的 元素作为运算分量。 不需要括弧唯一地表示计算顺序。 j i a g b c d e f h / + + * * * + * - 9 例
例 10 后缀表达式求值:723*4个93/+ 26二4个931+ L4个931+ 193/+ 4
7 2 3 * - 4 9 3 / + 7 6 - 4 9 3 / + 1 4 9 3 / + 4 1 9 3 / + 1 3 + 10 例 后缀表达式求值: