7.5 演習課題

  5.演習課題7-5
 2分木を使って、英単語列をソートするプログラムを作成せよ。英単語は改行で区切って順次入力するものとし、長さ1以下の単語の入力により入力は完了するものとする。最後に入力した長さ1の単語は入力には含めない。入力した単語により辞書的順序を順序として2進木を構成し、この2進木のpreorder 探索によりソート結果を出力せよ。

 ここでは以下の特徴を持つような2分木を利用してデータのソートを行なうプログラムを作成する。
(左の子どものデータ)< 親のデータ < (右の子どものデータ) 条件(1)
 この様な性質を持つ2分木を2進木もしくは2進分類木と呼ぶ。2進木のデータを抽象的に以下の様に表現するものとする。
struct binary {
   char     *data;
   struct binary   *l_child;
   struct binary   *r_child;
   struct binary   *parent;
  }
このデータ構造を使った挿入と走査のアルゴリズムを示す

プログラムの大枠をここに示す。アルゴリズムのみではわからない人はこれを見ること。

さらに詳しいところまでをここに示す。但しできるだけここは見ないように。