所以我正在实现我自己的二叉搜索树,并注意到一个丑陋的if语句经常以我的方式出现(这可能不是最好的方式,但这不是我们正在讨论的)在一个节点的孩子是否是左或右的孩子,如:为了语法上的原因,是否值得使用长度为2的数组而不是两个变量?
if (leftChild)
parent.setLeft(child.getRight());
else
parent.setRight(child.getRight());
然后我想到了这一点:
parent.setChild(childIndex, child.getRight());
如果childIndex是较早确定其中leftChild本来是一个字节决心。
正如你可以看到这个更简洁,但要这样做,我要么必须在setChild方法中有一个if语句,要么代表长度为2的数组。如果我们在这里假装这个BST要求最大化的性能/空间效率,将子节点引用的存储切换为2元素数组而不是一对变量(或者甚至只是将set语句隐藏在setChild方法内部)会有什么样的折衷? 。
我知道在现实世界中这可能并不重要,但我仍然对哪种方法是最好的方法感兴趣。
我会选择在可能的小性能增益可读性。 – 2012-07-18 08:34:34