用二叉树构建逻辑运算表达式

利用BinaryTree类实现逻辑表达式的处理,包括以下处理函数:

∙ buildParseTree:建立逻辑表达式解析树; ∙
printExp: 输出中缀表达式(去除不必要的括号)。

注意:需要处理的逻辑表达式不是全括号形式,操作数为True/False,操 作符为’and’, ’or’, ’not’, 优先级为:括号>not>and>or,单词仍然是用空格 隔开。 如:no t ( True or False ) and ( False or True and True )

问题:
1、怎么在树中体现运算优先级?
2、not 是 一元运算符,作为根时,其子树怎么办?怎么和二元运算符“和谐”?
3、怎么输出中缀表达式?怎么去掉不必要的括号?

谢谢大家