0
我是新來的樹,我在下面附加的代碼有問題,當我打印出樹時,我的算術符號顯示爲0。我必須創建一個二進制表達式樹,它將表達式2 + 4 - 3存儲在java中
任何人都可以看到這段代碼?謝謝!
這裏是我的節點類:
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;
}
}
這裏是我的測試類:
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);
}
}
我的輸出應該如下。
輸出:
2 0 4 0 3
你不使用「node.data1」,這是保存字符屬性。 –
請注意,我們通常對於(+, - )或(*,/)等等的距離運算符從左到右進行計算。所以評估順序是(2 + 4)-3。在樹上,我們首先倒塌葉子,那麼根就會 - 然後。但我並不深入樹木,也許有一種解決這種樹木的替代方式,你的方法很好。 –