そこで、私は独自の二分探索ツリーを実装していましたが、私がやっている方法では醜い if ステートメントがあまりにも頻繁に現れることに気付きました (これはおそらく最善の方法ではありませんが、それは私たちが議論しているものではありません)。ノードの子は左または右の子です。例:
if (leftChild)
parent.setLeft(child.getRight());
else
parent.setRight(child.getRight());
それから私はこれを考えました:
parent.setChild(childIndex, child.getRight());
ここで、childIndex は、leftChild が決定された場所で以前に決定されたバイトです。
ご覧のとおり、これははるかに簡潔ですが、このようにするには、setChild メソッドに if ステートメントを含めるか、子を長さ 2 の配列として表す必要があります。ここで、この BST には最大のパフォーマンスが必要であると仮定するとスペース効率、変数のペアではなく、子ノード参照のストレージを 2 要素配列に切り替える (または単に setChild メソッド内の if ステートメントを非表示にする) と、どのようなトレードオフになるでしょうか。
現実の状況では、これはそれほど重要ではないことはわかっていますが、どの方法が最善の方法であるかについてはまだ関心があります。