对于我们在数据结构中给出的任务,我们必须创建一个测试类来确定我们得到的代码是否正确地遍历了我们测试类中的二叉树。
这些是提供给我们的 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);
然而,他很难解释为什么这种方式更好。有人可以解释为什么这更有效吗?如果示例中需要更多代码,请询问。