回答編集履歴

2

段階追加

2021/11/13 09:59

投稿

jimbe
jimbe

スコア13209

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

僅かに説明修正

2021/11/13 09:59

投稿

jimbe
jimbe

スコア13209

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