回答編集履歴
2
段階追加
test
CHANGED
@@ -128,7 +128,43 @@
|
|
128
128
|
|
129
129
|
|
130
130
|
|
131
|
-
ここで、「ツリーの一部はまたツリー」を処理する為に再帰を使うことになります。
|
131
|
+
ここで、「ツリーの一部はまたツリー」を処理する為に再帰を使うことになります。
|
132
|
+
|
133
|
+
```c
|
134
|
+
|
135
|
+
printf(n->label);
|
136
|
+
|
137
|
+
printf("(");
|
138
|
+
|
139
|
+
if(n->left == NULL) {
|
140
|
+
|
141
|
+
printf("NULL");
|
142
|
+
|
143
|
+
} else {
|
144
|
+
|
145
|
+
printTree(n->left);
|
146
|
+
|
147
|
+
}
|
148
|
+
|
149
|
+
printf(",");
|
150
|
+
|
151
|
+
if(n->right == NULL) {
|
152
|
+
|
153
|
+
printf("NULL");
|
154
|
+
|
155
|
+
} else {
|
156
|
+
|
157
|
+
printTree(n->right);
|
158
|
+
|
159
|
+
}
|
160
|
+
|
161
|
+
printf(")");
|
162
|
+
|
163
|
+
```
|
164
|
+
|
165
|
+
これで完成・・・ではあるのですが、コードを注意してみると、left や right が NULL の場合の処理は printTree に既に「if(n == NULL) {}」としてあります。
|
166
|
+
|
167
|
+
ですのでそれぞれの if 文は省くことが出来ます。(関数全体を表記します。)
|
132
168
|
|
133
169
|
```c
|
134
170
|
|
1
僅かに説明修正
test
CHANGED
@@ -116,7 +116,7 @@
|
|
116
116
|
|
117
117
|
```
|
118
118
|
|
119
|
-
・・・これでは left も right も NULL じゃない場合に何も出力されません。
|
119
|
+
・・・これでは left も right もそれぞれ NULL じゃない場合に何も出力されません。
|
120
120
|
|
121
121
|
では、例えば left が NULL では無い場合、何を表示するのでしょうか。
|
122
122
|
|