質問編集履歴

3

不正な削除の対応

2017/12/26 08:10

投稿

cgengo
cgengo

スコア12

test CHANGED
File without changes
test CHANGED
@@ -1 +1,97 @@
1
+ C言語
2
+
3
+ コード
4
+
5
+ #include<stdio.h>
6
+
7
+ #include<stdlib.h>
8
+
9
+ char buf[128];
10
+
11
+
12
+
13
+ struct student {int id; char name[32]; int score; };
14
+
15
+ typedef struct student datatype;
16
+
17
+ struct node{ datatype data; struct node *left,*right; };
18
+
19
+
20
+
21
+ struct node* get_tree(){
22
+
23
+ struct node *t;
24
+
25
+ if(fgets(buf,sizeof(buf),stdin)==NULL||buf[0]=='.')
26
+
27
+ return NULL;
28
+
29
+ else{
30
+
31
+ t=(struct node*)malloc(sizeof(struct node));
32
+
33
+ sscanf(buf,"%d,%[^,],%d",&t->data.id,t->data.name,&t->data.score);
34
+
35
+ t->left=get_tree();
36
+
37
+ t->right=get_tree();
38
+
39
+ return t;
40
+
41
+ }
42
+
43
+ }
44
+
45
+
46
+
47
+ struct node* bst_insert(struct node *t,struct student d){
48
+
49
+ /*ここが分からない*/
50
+
51
+ }
52
+
53
+
54
+
55
+ void print_bst(struct node *t){
56
+
57
+ if(t==NULL){
58
+
59
+ printf(".");
60
+
61
+ }else{
62
+
63
+ printf("%d,%s,%d",t->data.id,t->data.name,t->data.score);
64
+
65
+ print_bst(t->left);
66
+
67
+ print_bst(t->right);
68
+
69
+ }
70
+
71
+ }
72
+
73
+ int main(){
74
+
75
+ struct node *t=get_tree();
76
+
77
+ struct student d;
78
+
1
- 解決しました。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
79
+ scanf("%d,%[^,],%d ",&d.id,d.name,&d.score);
80
+
81
+ t=bst_insert(t,d);
82
+
83
+ print_bst(t);
84
+
85
+ return 0;
86
+
87
+ }
88
+
89
+
90
+
91
+ ͜この分からないとなっているところを埋めてほしいです。考えてもなかなかできないです。
92
+
93
+ ちなみにこのbst_insert関数は構造体nodeのアドレスtのさす節点を根とする二分探索木に構造体studentの値dをメンバdataとする節点を追加し得られた二分探索木の根の接点のアドレスを返す関数。
94
+
95
+
96
+
97
+ どなたかよろしくお願いします。参考にさせていただきたいです。

2

2017/12/26 08:10

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,97 +1 @@
1
- C言語
2
-
3
- コード
4
-
5
- #include<stdio.h>
6
-
7
- #include<stdlib.h>
8
-
9
- char buf[128];
10
-
11
-
12
-
13
- struct student {int id; char name[32]; int score; };
14
-
15
- typedef struct student datatype;
16
-
17
- struct node{ datatype data; struct node *left,*right; };
18
-
19
-
20
-
21
- struct node* get_tree(){
22
-
23
- struct node *t;
24
-
25
- if(fgets(buf,sizeof(buf),stdin)==NULL||buf[0]=='.')
26
-
27
- return NULL;
28
-
29
- else{
30
-
31
- t=(struct node*)malloc(sizeof(struct node));
32
-
33
- sscanf(buf,"%d,%[^,],%d",&t->data.id,t->data.name,&t->data.score);
34
-
35
- t->left=get_tree();
36
-
37
- t->right=get_tree();
38
-
39
- return t;
40
-
41
- }
42
-
43
- }
44
-
45
-
46
-
47
- struct node* bst_insert(struct node *t,struct student d){
48
-
49
- /*ここが分からない*/
50
-
51
- }
52
-
53
-
54
-
55
- void print_bst(struct node *t){
56
-
57
- if(t==NULL){
58
-
59
- printf(".");
60
-
61
- }else{
62
-
63
- printf("%d,%s,%d",t->data.id,t->data.name,t->data.score);
64
-
65
- print_bst(t->left);
66
-
67
- print_bst(t->right);
68
-
69
- }
70
-
71
- }
72
-
73
- int main(){
74
-
75
- struct node *t=get_tree();
76
-
77
- struct student d;
78
-
79
- scanf("%d,%[^,],%d ",&d.id,d.name,&d.score);
1
+ 解決しました。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
80
-
81
- t=bst_insert(t,d);
82
-
83
- print_bst(t);
84
-
85
- return 0;
86
-
87
- }
88
-
89
-
90
-
91
- ͜この分からないとなっているところを埋めてほしいです。考えてもなかなかできないです。
92
-
93
- ちなみにこのbst_insert関数は構造体nodeのアドレスtのさす節点を根とする二分探索木に構造体studentの値dをメンバdataとする節点を追加し得られた二分探索木の根の接点のアドレスを返す関数。
94
-
95
-
96
-
97
- どなたかよろしくお願いします。参考にさせていただきたいです。

1

コードの修正

2017/12/25 13:33

投稿

cgengo
cgengo

スコア12

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,7 @@
1
+ C言語
2
+
3
+ コード
4
+
1
5
  #include<stdio.h>
2
6
 
3
7
  #include<stdlib.h>