きょうのJAVA part 4

今日やったこと

ALDS1_8_A Binary Search Tree Ⅰ

https://onlinejudge.u-aizu.ac.jp/courses/lesson/1/ALDS1/8/ALDS1_8_A

insert と print のみの二分探索木 二分探索木は 左の子のキー ≦ 親のキー ≦ 右の子のキー になるような木のこと 出力は中間順巡回 → 先行順巡回の順で出力 親を保存しておいて自分のキーと二分探索木の根のキーと大きさを比べていく null になれば終了

ALDS1_8_B Binary Search Tree Ⅱ

https://onlinejudge.u-aizu.ac.jp/courses/lesson/1/ALDS1/8/ALDS1_8_B

上のやつに find を追加した二分探索木 節点が null になるかキーが一致するまで二分探索木の根のキーと大きさを比べていく 見つかったらその節点を返す 見つからなかったら null を返す null なら no それ以外は yes

ALDS1_8_C Binary Search Tree Ⅲ

 https://onlinejudge.u-aizu.ac.jp/courses/lesson/1/ALDS1/8/ALDS1_8_C

上のやつに delete を追加した二分探索木 正直あんまり理解できていない 何をしてるかはなんとなくわかる 子がいるかいないかで操作が変わる いなければその節点を消去するだけでいい ひとつしかないならその子を消した節点のところに持ってくる ふたつあるときはその節点の次に大きい節点を見つけてくる必要がある これを successor とかって言うんだっけ 2パターンあるから注意 あとは君の目で確かめてくれ