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も見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
3分あったら何をしますか?
カップ麺にお湯を入れて、できるまでの3分間で皆さんは何をしていますか?
-
【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
【お題】 ・ありそうだけど、絶対に無いことわざを教えてください。
-
食べられるかと思ったけど…ダメでした
「この煮物、だいぶ放置しちゃったけど大丈夫かな…」 「食べ物じゃないけど、なんか食べたらすごく美味しそうな気がする」
-
「黒歴史」教えて下さい
若気のいたりでやってしまったけれど、いまとなっては封印したい… そんなあなたの黒歴史を教えて下さい。
-
二分探索木のheight(高さ?)を見つけるアルゴリズム
Java
-
関数から配列を返すには?
C言語・C++・C#
-
DフリップフロップからJKフリップフロップを作る
その他(自然科学)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2分探索木の高さを求めるプロ...
-
CPUの考え方を教えてください ...
-
ルート要素ノードが2個ある場合?
-
C#でTreeViewのCheckBoxのサイ...
-
あるノードリストに、特定の名...
-
(VB.NET)TreeViewのノード文...
-
複数のマックPCによる数値計算...
-
[C#]テキストボックスに入力し...
-
CTreeCtrlで、あるノード以下だ...
-
C#のツリービューでツリーノー...
-
最長経路探索
-
SNMP リンクダウンとノードダ...
-
C# TreeView 効率良いノード追...
-
XMLで要素が記述された順番に意...
-
バッチファイルでテキストファ...
-
VBSでXMLを読込、検索結果をテ...
-
重複するものを消したい
-
Visual Basic .NET の識別子は...
-
xmlの属性が重複しているのをx...
-
HTTPステータス 404 - There is...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
SNMP リンクダウンとノードダ...
-
ルート要素ノードが2個ある場合?
-
昔Winnyってありましたけど、あ...
-
あるノードリストに、特定の名...
-
TreeView の初期表示について
-
複数のマックPCによる数値計算...
-
同じタグ名の項目取得
-
2分探索木の高さを求めるプロ...
-
各ノードの行数取得
-
ノードとは
-
XML文書の指定した属性値を持つ...
-
TreeVIewのノード名を編集する...
-
ツリービューの使い方が・・・
-
TreeViewの再表示のちらつきを...
-
C#でtreeviewの指定ノードを選...
-
ツリービューのノードをダブル...
-
コンテキストメニュークリック...
-
VB6.0でDOMを使用して...
-
C#でTreeViewのCheckBoxのサイ...
おすすめ情報