なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net (914レス)
前次1-
抽出解除 レス栞

49
(1): デフォルトの名無しさん [] 2015/11/29(日)20:46 ID:ILoya83o(1/5)
>>9
俺の見解では、ツリートラバースに再帰を必要とするのはデータ構造に問題があると思うんだよな。
イテレータの実装を考えると再帰はちょっと無理があるんじゃないかと思う。
もちろん出来ないわけではないのだが。
ノードが子ノードを保持するような原始的なデータ構造は良くないのではないか。
52
(2): デフォルトの名無しさん [sage] 2015/11/29(日)21:25 ID:+8PPW4GA(4/5)
>>49
> イテレータの実装を考えると再帰はちょっと無理があるんじゃないかと思う。
問題はデータ構造の方じゃなくて言語の方だと思う。
というのも、yieldを持つ言語なら再帰を使ったやり方が最も簡潔に書けるから。

-- language:lua
function traverse(node)
 if node then
  traverse(node.left)
  coroutine.yield(node.value)
  traverse(node.right)
 end
end

co = coroutine.create(traverse)
not_end, value = coroutine.resume(co, node)
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.033s