ノード 36 を赤黒ツリーに挿入すると、次の赤黒ツリーが生成されました。
私の問題は、この特別な場合にダブルレッドを処理する方法ですか? ケース2または3ですか?
ノード 36 を赤黒ツリーに挿入すると、次の赤黒ツリーが生成されました。
私の問題は、この特別な場合にダブルレッドを処理する方法ですか? ケース2または3ですか?
ウィキペディアのプロパティとケースに基づいて...
36
22
ケース 5 の下に挿入され、左に回転します。
親のPは赤ですが、おじさんは黒かそこにいません。
ウィキペディアは「おじさんは黒人」と言っているだけですが、コードを見ると、そのケースがトリガーされていることがわかります。
36
プロパティ 5 (特定のノードからそのリーフ ノードへのすべてのパスに同じ数の黒いノードが含まれる) が保持されていないため、なしのツリーは既に無効であることに注意してください。
挿入順序が20, 15, 22, 30, 36
...
すべてのノードが赤で挿入されます。
22
ケース 2 の下に挿入されます。
親は黒人。
30
ケース3の下に挿入され22
、15
黒と20
赤を作ります。
親と叔父は赤です。どちらも黒く塗り直され、祖父母は赤くなります。
36
22
ケース 5 の下に挿入され、左に回転します。
親のPは赤ですが、おじさんは黒かそこにいません。