アルゴリズムとプログラミング
図の木構造は2分探索木である。a〜gの値の大小関係として、適切なものはどれか。ここで、a〜gの値は重複しないものとする。
ア.a<b<d<e<c<f<g
イ.d<b<e<a<f<c<g正解
ウ.d<e<f<g<b<c<a
エ.g<f<c<e<d<b<a
解説
二分探索木は「左の子は親より小さく、右の子は親より大きい」を全ノードで守る木。中順巡回(左→自分→右)すると魔法のように昇順が出てくる!
なぜ イ が正解か
根をaとする完全二分木(a が根、b/c が第2層、d/e/f/g が葉)で考えると、b は a の左子なので b<a、c は右子なので a<c。さらに d<b<e(b の左右)、f<c<g(c の左右)。加えて d, e は a の左部分木全体に属するので e<a、f は a の右部分木なので a<f。これを繋げると d<b<e<a<f<c<g となり、イが正解。
出典: 基本情報技術者試験 令和7年 公開問題