4 プログラム例

4.1 二分木の実装

2分木は,ノードとその接続状態を表すブランチからできている.C言語でこれを表現する ためには,ノードの中でデータと接続状態を示せばよい.リストを思い出せ,それとほと んど同じではないか! リストと同じように,ノードをあわす構造体を使えばよい.
	typedef struct node_tag{
	  int value;
	  struct node_tag *left;
	  struct node_tag *right;
	}node;

このようなノードを使うと,図13のようにツリー構造を表すことができる.

ツリー全体を表すために,ルートを表す構造体

	node *root_tree=NULL;

を宣言しておく.もちろん,これはノードを表す構造体のよりも後で宣言する必要がある. 先に宣言すると,tree_nodeという型がコンパイラーが分からないからである.ま た,初期値は意味のないポインター(NULL)を入れておく.最初はルートがないため, それを表すポインターは意味が無いためである.

プログラムの詳細については,付録を見よ.

図 13: 構造体を使ったツリー構造
\includegraphics[keepaspectratio,scale=0.9]{figure/tree_C.eps}



ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成19年7月26日


no counter