私はデータ構造が初めてです。赤黒木挿入アルゴリズムの実装を経験しました。アルゴリズムがソートされた値の挿入をどのように処理するかを理解できません。
データセット [10, 5, 2] で説明します。
したがって、イニシャル 10 が挿入され、ツリーのルートになり、その色は黒になります。10
次に、ルート 10 の下に 5 を追加します。5 の色は赤になります (現時点では、どのプロパティにも違反していません)。
次に、2 を追加して追加します。追加後、ツリーは次のようになります:-
2 (色が赤) の追加は、赤い親の下に赤い子を許可しないという規則に違反します。赤黒木には 3 つのケースがあります:- 3 つのケースはすべて、parentOf(newlyInsertedNode) に兄弟があることを前提としています。しかし、私の場合、parentOf(2) = 5 には兄弟がありません。では、このシナリオが赤黒木アルゴリズムでどのように処理されるか。