私はツリーに新しく、以下のコードに問題があります。ツリーを印刷すると、算術記号が0の。Javaで式2 + 4 - 3を保存するバイナリ式ツリーを作成する必要があります
誰でもこのコードを理解していただけますか?ありがとう!
public class Ex23d
{
public static void main(String[] args){
Node root = new Node('+');
root.left = new Node(2);
root.right = new Node('-');
Node r2 = root.right;
r2.left = new Node(4);
r2.right = new Node(3);
printTree(root);
}
public static void printTree()
{
printTree();
System.out.println();
}
public static void printTree(Node node)
{
if (node == null) return;
printTree(node.left);
System.out.print(node.data + " ");
printTree(node.right);
}
}
私の出力は以下のようになります。
class Node
{
Node left;
Node right;
int data;
char data1;
Node(int newData)
{
left = null;
right = null;
data = newData;
}
Node(char newData)
{
left = null;
right = null;
data1 = newData;
}
}
はここに私のテストクラスです:
は、ここに私のノードクラスです。
出力:
2 0 4 0 3
あなたは文字を保持しているプロパティである「node.data1」を使用していません。 –
通常、(+、 - )または(*、/)のような等しい範囲の演算子については、左から右へ評価します。したがって、評価順序は(2 + 4)-3です。木々では、最初に葉を崩壊させるので、根は - そうです。しかし、私は木の深いではない、多分あなたのアプローチがうまくそのような木を解決するalternativの方法があります。 –