質問編集履歴

2

疑問点の編集をさせて頂きました

2021/02/26 09:11

投稿

huskies
huskies

スコア2

test CHANGED
File without changes
test CHANGED
@@ -40,7 +40,19 @@
40
40
 
41
41
 
42
42
 
43
+ 疑問点の仮説をまとめさせていただきました。
44
+
45
+ - 1のリーフノードに届くまで3回再帰しています。例えば初回の再帰が呼ばれると、ノード自体は5に移動すると思いますが、この時点では tree.Left != nil のif文に入るため、appendまでは行かず、一度ここで止まり(?)処理待ちの状態となる
46
+
47
+ - そして, 1に到達すると、if文には入らないため、append, 次のif分を処理し、一度return(?)する
48
+
49
+ - その後、処理が止まっていた再帰の処理が新しい順から始まる
50
+
51
+
52
+
53
+
54
+
43
- なぜ、こちらの再帰を利用たアルゴリズムで成り立つのか、ま現状の理解で間違っている点がありましたらご指摘いただけると幸いです。よろしくお願い致します。
55
+ おそらくこちらの流れなのだと思うのですが、再帰をする際にif文にはまると処理待ちの状態になるのか・1に到達てreturnすると処理待ちがなぜ再開するのかりスッキリしていません。加えて、現状の理解で間違っている点がありましたらご指摘いただけると幸いです。よろしくお願い致します。
44
56
 
45
57
  ```Go
46
58
 

1

表記方法の修正

2021/02/26 09:11

投稿

huskies
huskies

スコア2

test CHANGED
@@ -1 +1 @@
1
- Golangにおけるバイナリーツリー(BST) のループの仕方について
1
+ Golangにおけるバイナリーツリー(BST) の再帰の仕方について
test CHANGED
@@ -1,4 +1,4 @@
1
- Golangのバイナリーツリー(BST)における、ループのやり方について疑問があり質問させていただきます。例えば以下のようなバイナリーツリーが構成されており、こちらをループすることで最小値~最大値を順番とするスライスを生成するとします。
1
+ Golangのバイナリーツリー(BST)における、再帰(Recursion) のやり方について疑問があり質問させていただきます。例えば以下のようなバイナリーツリーが構成されており、こちらを再帰を利用することで最小値~最大値を順番とするスライスを生成するとします。
2
2
 
3
3
  (この場合であれば:[1, 2, 5, 5, 10, 15, 22]が正解)
4
4
 
@@ -40,7 +40,7 @@
40
40
 
41
41
 
42
42
 
43
- なぜ、こちらのループアルゴリズムで成り立つのか、また現状の理解で間違っている点がありましたらご指摘いただけると幸いです。よろしくお願い致します。
43
+ なぜ、こちらの再帰を利用したアルゴリズムで成り立つのか、また現状の理解で間違っている点がありましたらご指摘いただけると幸いです。よろしくお願い致します。
44
44
 
45
45
  ```Go
46
46