差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
programming_algorithm:data_structure:redblacktree [2019/09/13] – [赤黒木] ikatakos | programming_algorithm:data_structure:redblacktree [2019/09/13] – [実装] ikatakos | ||
---|---|---|---|
行 47: | 行 47: | ||
* 根からそれぞれの葉までの経路上にある黒の個数は等しい | * 根からそれぞれの葉までの経路上にある黒の個数は等しい | ||
- | いろいろパターン分けがあってややこしいけど、限られた3~4ノードの色のパターンを見ることで、適切に状態を保てる。 | + | いろいろパターン分けがあってややこしいけど、平衡が崩れても、限られた3~4ノードの色のパターンを見ることで適切に状態を保てる。 |
詳細は参考の1つめのサイトが丁寧に場合分けを説明されている。 | 詳細は参考の1つめのサイトが丁寧に場合分けを説明されている。 | ||
行 56: | 行 56: | ||
=====実装===== | =====実装===== | ||
- | 再帰関数は極力無くした実装(1箇所だけ、多重再帰にはならない箇所で使用)。どうしても配列アクセスは多くなるので、Pythonだと遅い。PyPyならまぁまぁ。 | + | 再帰関数は極力無くした実装(1箇所だけ、多重再帰にはならない箇所で使用)。どうしても配列アクセスは多くなるので、Pythonだと遅い。PyPyなら……速いとは言えないが、まぁまぁ。 |
^関数^返値^概要^ | ^関数^返値^概要^ |