朝
Google Code Jam Round1Aがあって,遅れずに起床できたので出た. ところが頭が回っていなかったのとそんなにやる気が出なかったため5点しか取れなかった. 5点て...
昼
昨日実装したHeap
にdelete
を実装した. Heap
においてdelete
できるのは先頭の要素だけなので,とりあえず末尾の要素を先頭に持ってくる. あとはその要素が子よりも小さければ入れ替えていくことを続けていくと,ヒープ条件を保ったまま先頭要素を削除することができる.
続いて二分木を実装した. insert
とsearch
は簡単に実装できたが,delete
の実装が終わらなかった. 夜にやる.
夜
というわけで二分木のdelete
を実装した. ごちゃごちゃさせたくないという理由で再帰を使って書いたが,かえってややこしくなってしまった.
二分木はソート済みのデータを順にinsert
すると高さがn
の木になってしまうのでよくない. これを木を回転させることで解決したのがAVL木だ. まだ動作原理を理解していないので明日勉強しようと思う.