【发布时间】:2009-11-19 23:27:54
【问题描述】:
对于我们在数据结构中给出的任务,我们必须创建一个测试类来确定我们得到的代码是否正确遍历了测试类中的二叉树。
这些是提供给我们的 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);
但是,我的朋友建议我这样做:
// 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);
但是,他很难解释为什么这种方式更好。有人可以解释为什么这更有效吗?如果需要示例中的更多代码,请询问。
【问题讨论】:
标签: java data-structures binary-tree tree-traversal