对于数据结构中给出的作业,我们必须创建一个测试类来确定给出的代码是否正确遍历测试类中的二叉树。
这些是提供给我们的 BinaryTreeNode 类的 3 个构造函数:
public BinaryTreeNode(Object theElement, BinaryTreeNode theleftChild, BinaryTreeNode therightChild)
{
element = theElement;
leftChild = theleftChild;
rightChild = therightChild;
}
public BinaryTreeNode(Object theElement)
{
element = theElement;
}
public BinaryTreeNode() {}
我很快在我的测试类中进行了以下操作来创建指定的树之一:
// tree for ( A - B ) / C
BinaryTreeNode b1 = new BinaryTreeNode("A");
BinaryTreeNode b2 = new BinaryTreeNode("-");
BinaryTreeNode b3 = new BinaryTreeNode("B");
BinaryTreeNode b4 = new BinaryTreeNode("/");
BinaryTreeNode b5 = new BinaryTreeNode("C");
BinaryTreeNode bAB = new BinaryTreeNode(b2, b1, b3);
BinaryTreeNode bRoot = new BinaryTreeNode(b4, bAB, b5);
q.put(bRoot);
但是,我的 friend 建议我这样做:
// tree for ( A - B ) / C
BinaryTreeNode b1 = new BinaryTreeNode("A");
BinaryTreeNode b2 = new BinaryTreeNode("B");
BinaryTreeNode b3 = new BinaryTreeNode("C");
BinaryTreeNode bRoot= new BinaryTreeNode("/", new BinaryTreeNode("-", b1, b2), b3);
q.put(bRoot);
但是,他很难解释为什么这种方式更好。有人能解释一下为什么这样效率更高吗?如果示例中需要更多代码,请询问。
最佳答案
第二个使用字符串作为“元素”值,第一个使用 BinaryTreeNode。我不知道“element”的值应该是什么,但我的直觉告诉我它应该是一个字符串。这是这些片段之间的唯一区别。
关于java - 二叉树节点 - 哪条路?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1767324/