質問編集履歴
2
考えた過程追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -4,6 +4,8 @@
|
|
4
4
|
###発生している問題・エラーメッセージ
|
5
5
|
含まれている数字を入力すると全部Not Found(つまりreturn 0になっている)、含まれない数字を入力するとSegmentation fault: 11と出てきます。原因が全く分かりません。どう直せば良いのでしょうか?
|
6
6
|
|
7
|
+
(追記)2分木の定義通り、最初の節を見て一致していればreturn 1、値が最初の節より大きければ右の枝に移動、小さければ左の枝に移動して再帰、これを最後に到達するまで続ける、という風にしたつもりでしたが、馬鹿なので30分考えても何がおかしいのか全くわかりませんでした。お願いします。
|
8
|
+
|
7
9
|
```
|
8
10
|
1
|
9
11
|
2
|
1
コピペ漏れ
title
CHANGED
File without changes
|
body
CHANGED
@@ -32,6 +32,8 @@
|
|
32
32
|
上記は実行結果で、1〜18は木に含まれている数字、下4行は実際に1と19を探索した結果です。
|
33
33
|
|
34
34
|
###該当のソースコード
|
35
|
+
|
36
|
+
ごめんなさい、一部コピペ漏れがありました…
|
35
37
|
```
|
36
38
|
#include <stdio.h>
|
37
39
|
#include <stdlib.h>
|
@@ -100,7 +102,18 @@
|
|
100
102
|
return p;
|
101
103
|
}
|
102
104
|
|
105
|
+
if (x == p->data)
|
106
|
+
return p;
|
103
107
|
|
108
|
+
if (x < p->data)
|
109
|
+
p->left = insert_data(x, p->left);
|
110
|
+
else
|
111
|
+
p->right = insert_data(x, p->right);
|
112
|
+
|
113
|
+
return p;
|
114
|
+
}
|
115
|
+
|
116
|
+
|
104
117
|
int search_tree(int x, struct node *p) { //自分で書いたのはここです
|
105
118
|
if (x == p->data)
|
106
119
|
return 1;
|