配列やリスト構造のデータの中から、目的となるデータを探す場合、配列であれば2分探索法が用いられる。;}一方、リスト構造ではデータ列の真ん中のデータを取り出すには、先頭からアクセスするしかないのでO(N)の処理時間がかかり、極めて効率が悪い。リスト構造のようにデータの追加が簡単な特徴をもったまま、もっとデータを高速に探すことはできないものか?2分探索木ここで、データを探すための効率の良い方法として、2分探索木(2分木)がある。以下の木のデータでは、分離する部分に1つのデータと、左の枝(下図赤)と右の枝(下図青)がある。この枝の特徴は何だろうか?この枝では、中央のデータ例えば42の左の枝には、42未満の数字の枝葉が繋がっている。同じように、右の枝には、42より大きな数字の枝葉が繋がっている。この構造であれば、64を探したいなら、42より大きい→右の枝、72より小さい→左の枝、64が見つかった...と、いう風にデータを探すことができる。特徴としては、1回の比較毎にデータ件数は、(N-1)/2件に減っていく。N)での検索が可能となる。これを2分探索木とよぶ。このデータ構造をプログラムで書いてみよう。宣言しているデータ構造は、2つのポインタと1つのデータを持つという点では、双方向リストとまるっきり同じである。判定が必要な理由を答えよ。2分木に対する処理2分探索木に対する簡単な処理を記述してみよう。;}これらの関数では、木構造の全てに対する処理を実行する場合には、再帰呼び出しが必要となる。