所以我正在實現我自己的二叉搜索樹,並注意到一個醜陋的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