順不同のトラバーサルを行うことは知っていますが、左の子と右の子を区別する方法がわかりません。いつ葉に括弧を入れるか、それとも何か他のことをするべきかを基にすべきでしょうか。私は再帰がひどいです。ツリーはすでに完全に機能しているので、(1 + 2) * (3 - 4) のような式を入れて、postfix に変換してツリーに追加できます。各式に独自の括弧のセットを与える方法を見つける必要があるだけです。
これは、それを機能させるコードです。アルゴリズムのドリームクラッシュに感謝します!
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
}