09/06/15 20:41:47
スレリンク(tech板:405番)
[1] 授業単元:プログラミング実習I
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
typedef struct node *Tree;
typedef struct node{
int data;
Tree left_subtree;
Tree right_subtree;
} Node;
という風に定義された構造体を木の節点として
ポインタでつなげることによって表すことができる。
この様に表された2分木の根節点へのポインタが引数
として与えられた時、その2分木の高さ(すなわち、
根節点から葉節点までの枝の本数の最大値)を
調べて返すCの関数
int height(Tree t);
を定義せよ。ただし、簡単さのため、ここでは、
height(NULL)=-1として関数定義を行え。
HINT.
2分木の高さに関する
2分木の高さ=max{(2分木の左部分木の高さ),
(2分木の右部分木の高さ)}+1
という漸化式に着目すれば簡単。