![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
2分探索木の高さを求めるプログラムを作成しているのですが、
下に書いたプログラムだと上手くいきません・・。
int compute_height(struct BST_Node *p){
int lh=0, rh=0, Max;
if(p==NULL){ return 0; }
lh=compute_height(p->left);
rh=compute_height(p->right);
if(lh > rh){ return Max=lh; }
else{ return Max=rh; }
}
どこがおかしいのでしょう。教えてください。
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
深さを加算していない。
ノードの終端は必ずNULLなので0が返り、
それをlh、rhに代入してるだけなので
いつまでたっても0のまま。
+1すればいけるとおもうよ。
lh=compute_height(p->left)+1;
rh=compute_height(p->right)+1;
ご回答ありがとうございます!
考えが足りなかったようです(汗
無事お二人のおかげで上手くいけました。
親切に教えてくださってありがとうございます!!
No.1
- 回答日時:
あるノードの「高さ」を求めるには、「左右の子ノードの高さ(の高い方)」に、自身のノード分の1を足さないといけません。
あとは、変数Maxは使ってないので不要ですので、
---
if(lh > rh){ return Max=lh; }
else{ return Max=rh; }
---
この部分を
---
if(lh > rh){ return lh+1; }
else{ return rh+1; }
---
でいけるかと思います。
ご回答ありがとうございます!
なるほど・・・言われてみれば(汗
C言語でいつもこういう感じなんです。
分かりやすいご回答ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# プログラムの時、フローチャートはどうなりますか?図でお願いします。 int main(void) { 1 2022/10/01 22:45
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語 3 2022/11/09 13:27
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# leetcode 155 minstack 1 2022/05/07 16:43
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
ツリービューのノードをダブル...
-
SNMP リンクダウンとノードダ...
-
同じタグ名の項目取得
-
(VB.NET)TreeViewのノード文...
-
スケールフリーネットワークをC...
-
TreeViewの再表示のちらつきを...
-
ルート要素ノードが2個ある場合?
-
TreeViewコントロールについて
-
昔Winnyってありましたけど、あ...
-
ナップザック問題で複数の経路...
-
2分探索木の高さを求めるプロ...
-
C言語の単方向リストについて
-
C# TreeViewのノードの判定
-
C言語:文字列の並び替え
-
インターネットって、どうやっ...
-
ノード数とは?
-
あるノードリストに、特定の名...
-
最長経路探索
-
TreeView1のIndexを見てみたい。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
昔Winnyってありましたけど、あ...
-
ルート要素ノードが2個ある場合?
-
SNMP リンクダウンとノードダ...
-
同じタグ名の項目取得
-
コンテキストメニュークリック...
-
あるノードリストに、特定の名...
-
2分探索木の高さを求めるプロ...
-
XML文書の指定した属性値を持つ...
-
ノードとは
-
TreeViewに重複する値をセット
-
ツリービューのノードをダブル...
-
各ノードの行数取得
-
TreeViewで複数ノードの選択は...
-
最長経路探索
-
VB6.0でDOMを使用して...
-
ノード数とは?
-
複数のマックPCによる数値計算...
-
ツリービューを閉じさせたくない。
-
TreeViewの再表示のちらつきを...
おすすめ情報