H20 プログラミング演習2 第12週~第14週 講義補助資料(木構造)
2009-05-18 (mon)|カテゴリー:|
プログラミング演習2 ~第12週から第14週まで~
※ 課題12-1の実行例では、外点が0(ゼロ)として表示されています。
本課題では、 「外点のキーは0(ゼロ)とする。」 との記述が抜けています。
つまり、外点を作成する場合、
struct node *n[10]; n[i] = new_node(0);
とする必要があります。 12-1
・print_treeの使い方
根(root)のstruct nodeのポインタをrootとすると
print_tree(root);
という形で利用する.
・とりあえず
とりあえず,教科書p.155ページを見てください.
・structの宣言
プリントにもありますが,以下の宣言がまずはじめ.
struct node{ int key; structnode *parent,*left,*right; }
・とりあえず2
構造体node型の領域を確保し,要素を代入するnew_node関数を作りましょう..
struct node *new_node(int val) { [struct node のポインタpを宣言,struct node相当のメモリ領域をmallocでわりあてる.] [pのメンバ変数keyに値valを割り当てる] [pのメンバ変数parent,left,rightにNULLを割り当てる] [strut node のポインタpを返す.] }
といった作業をします.
これを作った後に
struct node *n; n = new_node(4);
のようにすれば値が4のノードを作れるわけです.
あとはこれと同様に配列なりで必要な数nodeのポインタ&メモリ領域を用意し, このparent, left, rightに適切なポインタを代入していくことで木構造を作ります.