質問編集履歴

1

新しい問題が発生したのでその説明の追加

2016/05/23 10:49

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -8,13 +8,69 @@
8
8
 
9
9
 
10
10
 
11
+ [追記]
12
+
13
+ Segmentation faultは解決したのですが, 実行の度に登録したデータの数が異なります.
14
+
15
+ なぜでしょうか?
16
+
17
+
18
+
11
19
  ###発生している問題・エラーメッセージ
12
20
 
13
21
 
14
22
 
15
23
  ```
16
24
 
25
+ 0
26
+
27
+ 1
28
+
29
+ 2
30
+
31
+ 3
32
+
33
+ 4
34
+
35
+ 5
36
+
37
+ 6
38
+
39
+ 7
40
+
41
+ 8
42
+
43
+ 9
44
+
45
+ 10
46
+
17
- Segmentation fault: 11
47
+ 11
48
+
49
+ 12
50
+
51
+ 13
52
+
53
+ 14
54
+
55
+ 15
56
+
57
+ 16
58
+
59
+ 19
60
+
61
+ ```
62
+
63
+ ```
64
+
65
+ 0
66
+
67
+ 1
68
+
69
+ 2
70
+
71
+ 3
72
+
73
+ 19
18
74
 
19
75
  ```
20
76
 
@@ -30,7 +86,7 @@
30
86
 
31
87
  #include<time.h>
32
88
 
33
- #define N 10
89
+ #define N 20
34
90
 
35
91
  #define SUCCESS 1
36
92
 
@@ -94,6 +150,20 @@
94
150
 
95
151
 
96
152
 
153
+ /*
154
+
155
+ void treePrint(node_t *ndPtr) //データ内容の表示
156
+
157
+ {
158
+
159
+ while (ndPtr != NULL) {
160
+
161
+ printf("%d\n", ndPtr->data);
162
+
163
+ */
164
+
165
+
166
+
97
167
  //データを3分木に挿入, **ndPtrPtr : ルートのポインタのポインタ
98
168
 
99
169
  int insert_data(data_t dt, node_t **ndPtrPtr)
@@ -116,17 +186,19 @@
116
186
 
117
187
 
118
188
 
189
+ srand((unsigned)time(NULL)); //一桁の乱数生成
190
+
191
+
192
+
119
193
  while(1) {
120
194
 
121
195
  int r;
122
196
 
123
- srand((unsigned)time(NULL)); //一桁の乱数生成
124
-
125
197
  r = rand() % 10;
126
198
 
127
199
 
128
200
 
129
- if (r == 0) *ndPtrPtr = (*ndPtrPtr)->left); //0.1の確率で左の子を指す
201
+ if (r == 0) *ndPtrPtr = (*ndPtrPtr)->left; //0.1の確率で左の子を指す
130
202
 
131
203
  else if (1 <= r && r <= 8) ndPtrPtr = &((*ndPtrPtr)->mid); //0.8の確率で真ん中の子を指す
132
204
 
@@ -150,7 +222,9 @@
150
222
 
151
223
 
152
224
 
153
- void preOrder(node_t *ndPtr) //行きがけ順で登録データの個数を確認
225
+ //行きがけ順で登録データの個数を確認
226
+
227
+ void preOrder(node_t *ndPtr)
154
228
 
155
229
  {
156
230
 
@@ -172,7 +246,7 @@
172
246
 
173
247
  {
174
248
 
175
- node_t *root;
249
+ node_t *root = NULL;
176
250
 
177
251
  int i;
178
252
 
@@ -194,4 +268,6 @@
194
268
 
195
269
  }
196
270
 
271
+
272
+
197
- ```
273
+ ```