表达式 a*(b+c)-d 的后缀表达式?
作者&投稿:甘侍 (若有异议请与网页底部的电邮联系)
B
这个这样分析
((a*(b+c))-d) => (a*(b+c)),d,- => a,(b+c),*,d,- => a,b,c,+,*,d,-
后缀表达式,就是后序遍历该二叉树,所得到的序列,也就是:abc+*d-
同样的道理,前缀表达式是前序遍历二叉树,所得到的序列,是:-*a+bcd
二叉树如下图:
______(-)_________
_____/___\________
____(*)__(d)______
____/__\__________
__(a)__(+)________
______/___\_______
____(b)___(c)_____
后缀表达式,就是后序遍历该二叉树,所得到的序列,也就是:abc+*d-
同样的道理,前缀表达式是前序遍历二叉树,所得到的序列,是:-*a+bcd
首先输出A(因为不是运算符),然后把*储存到栈中,然后遇到(,他比*的优先级高,所以压入栈,再输出B,然后遇到+,同样他比(的优先级高,继续压入栈,然后输出C,再遇到),他的优先级比+低,所以将+出栈,并输出+,然后再与(进行比较,两个优先级一样,将(直接出栈,再遇到-运算符,他的优先级比*低,所以将*出栈,并输出*,然后将-入栈,现遇到D,直接输出,然后将-输出,所以最后的结果就是ABC+*D-
根据所给表达式(其实正常的都是中缀表达式)可以构造二叉树
—
/
\
*
d
/
\
a
+
/
\
b
c
中缀表达式就是中序遍历a*(b+c)-d
后缀表达式就是后续遍历abc+*d-
前缀表达式就是前序遍历-*a+bcd
abc+*d-
想想堆栈
中叔嵇速尔:[答案] 后缀表达式,就是后序遍历该二叉树,所得到的序列,也就是:abc+*d- 同样的道理,前缀表达式是前序遍历二叉树,所得到的序列,是:-*a+bcd
郾城区15273754367: 表达式a*(b+c) - d的后缀表达式是?abcd*+ - abc+*d - ?abc*+d -- +abcd?是哪个? - ?
中叔嵇速尔:[答案] 13题答案是B、abc+*d- 把原式看成一棵二叉树 - / \ * d a + / \ b c
郾城区15273754367: 表达式a*(b+C) - d的后缀表达式什么?什么叫中缀和后缀? - ?
中叔嵇速尔:[答案] 根据所给表达式(其实正常的都是中缀表达式)可以构造二叉树 — / \ * d / \ a + / \ b c 中缀表达式就是中序遍历a*(b+c)-d 后缀表达式就是后续遍历abc+*d- 前缀表达式就是前序遍历-*a+bcd
郾城区15273754367: 表达式A*(B+C) - D的后缀表达式是?
中叔嵇速尔: 后缀表达式,就是后序遍历该二叉树,所得到的序列,也就是:abc+*d- 同样的道理,前缀表达式是前序遍历二叉树,所得到的序列,是:-*a+bcd
郾城区15273754367: 请问a*(b+c) - d/f的后缀表达式怎么写啊 - ?
中叔嵇速尔:[答案] abc+*df/-
郾城区15273754367: 表达式a*(b+c) - d的后缀表达形式为?
中叔嵇速尔: B 这个这样分析 ((a*(b+c))-d) => (a*(b+c)),d,- => a,(b+c),*,d,- => a,b,c,+,*,d,-
郾城区15273754367: a*(b+c) - d的后缀表达式形式为? - ?
中叔嵇速尔: 表达式 a*(b+c)-d是中缀表达式,转化成二叉树后,它是中序遍历的结果 二叉树如下图:______(-)_________ _____/___\________ ____(*)__(d)______ ____/__\__________ __(a)__(+)________ ______/___\_______ ____(b)___(c)_____ 后缀表达式,就是后序遍历该二叉树,所得到的序列,也就是:abc+*d- 同样的道理,前缀表达式是前序遍历二叉树,所得到的序列,是:-*a+bcd