我知道要进行中序遍历,但我不知道如何区分左孩子和右孩子。我什至应该基于何时在叶子上加上括号,还是应该做其他事情。我很讨厌递归。我已经让树完美地工作了,所以我可以输入一个像 (1 + 2) * (3 - 4) 这样的表达式,将其转换为后缀并将其添加到树中。我只需要找到一种方法来为每个表达式赋予其自己的一组括号。
这是使它工作的代码,感谢算法dreamcrash!
private void printInfix(Node n)
{
if (n != null)
{
if (n.isLeaf())//if n is a leaf, therefore a number
System.out.print(n.element);
else//n is not a leaf
{
System.out.print("(");
printInfix(n.left);
System.out.print(n.element);
printInfix(n.right);
System.out.print(")");
}//end else
}//end if
}