質問編集履歴
2
n=0に対応できるよう変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -109,10 +109,9 @@
|
|
109
109
|
else if(n < 0){
|
110
110
|
target_node->right = addData(target_node->right, add_node);
|
111
111
|
}
|
112
|
-
else if(n = 0)
|
112
|
+
else if(n = 0)
|
113
113
|
printf("同姓同名の人が居ます。\n");
|
114
114
|
return target_node;
|
115
|
-
}
|
116
115
|
}
|
117
116
|
|
118
117
|
|
1
n=0の場合に対応できるようにしました。挿入したノードの名前を表示するようにしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -76,6 +76,70 @@
|
|
76
76
|
}
|
77
77
|
|
78
78
|
```
|
79
|
+
###修正版ソースコード
|
80
|
+
```c言語
|
81
|
+
|
82
|
+
#include <stdio.h>
|
83
|
+
#include <string.h>
|
84
|
+
#include <stdlib.h>
|
85
|
+
#define NUMBER 10000
|
86
|
+
|
87
|
+
typedef struct node{
|
88
|
+
char name[NUMBER];
|
89
|
+
char cellnumb[NUMBER];
|
90
|
+
struct node *left;
|
91
|
+
struct node *right;
|
92
|
+
}Node;
|
93
|
+
|
94
|
+
Node *addData(Node *target_node, Node *add_node)
|
95
|
+
{
|
96
|
+
int n;
|
97
|
+
n = strcmp(target_node->name, add_node->name);
|
98
|
+
if(target_node == NULL){
|
99
|
+
Node *target_node = malloc(sizeof(Node));
|
100
|
+
strcpy(target_node->name, add_node->name);
|
101
|
+
strcpy(target_node->cellnumb, add_node->cellnumb);
|
102
|
+
target_node->left = NULL;
|
103
|
+
target_node->right = NULL;
|
104
|
+
printf("%s", target_node->name);
|
105
|
+
}
|
106
|
+
else if(n > 0){
|
107
|
+
target_node->left = addData(target_node->left, add_node);
|
108
|
+
}
|
109
|
+
else if(n < 0){
|
110
|
+
target_node->right = addData(target_node->right, add_node);
|
111
|
+
}
|
112
|
+
else if(n = 0){
|
113
|
+
printf("同姓同名の人が居ます。\n");
|
114
|
+
return target_node;
|
115
|
+
}
|
116
|
+
}
|
117
|
+
|
118
|
+
|
119
|
+
int main(void)
|
120
|
+
{
|
121
|
+
int answer;
|
122
|
+
Node *root;
|
123
|
+
Node *p;
|
124
|
+
|
125
|
+
root = NULL;
|
126
|
+
do{
|
127
|
+
int answer;
|
128
|
+
printf("ノードを追加しますか?\n[Yes] ==> 1 [No] ==> 0\n"); scanf("%d",&answer);
|
129
|
+
if(answer == 1){
|
130
|
+
printf("名前を入力してください。\n"); scanf("%s", p->name);
|
131
|
+
printf("電話番号を入力してください。\n"); scanf("%s", p->cellnumb);
|
132
|
+
p->left = NULL;
|
133
|
+
p->right = NULL;
|
134
|
+
root = addData(root, p);
|
135
|
+
}
|
136
|
+
}while(answer == 1);
|
137
|
+
|
138
|
+
return 0;
|
139
|
+
}
|
140
|
+
|
141
|
+
```
|
142
|
+
|
79
143
|
|
80
144
|
### 試したこと
|
81
145
|
|