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。在树上,我们首先倒塌叶子,那么根就会 - 然后。但我并不深入树木,也许有一种解决这种树木的替代方式,你的方法很好。 –