成果物
Binary Search Treeのデータの追加と削除をアニメーションにしてみました。
親ノードが二つまでの子ノードを持つこちらのデータ構造は、データの追加は遅いですが、データが自動的に並べ替えられるので、大量のデータでも高速で読み取りができます。
仕組み
左の子孫の値 ≤ 親 ≤ 右の子孫の値という関係になっています。探索は一番上のノードから始まります。
追加したい数値が、探索中のノードの値よりも大きければ、探索対象を右に移動、なければ右に追加、探索中のノードの値と同じなら何もせず、探索中のノードの値よりも小さければ、探索対象を左に移動、なければ左に追加します。
こちらのサイトが参考になります。
データの削除は少し癖があって、こちらが参考になります。
コード
コードはこちらです。