我用 ruby 编写了一个非常简单的递归树遍历方法。我想产生这种遍历的结果,以便我可以轻松地遍历树的节点。
def bottom_up_traversal (node)
if(node.has_leaf_children?)
node.children.each{|i| yield i}
else
node.children.each{|i| bottom_up_traversal(i)}
yield node
end
end
当我尝试调用它时,例如:
bottom_up_traversal(@root){|this_node| puts this_node }
我得到一个“错误数量的参数(0 代表 1)”。我知道这可能只是我用语法做的一些愚蠢的事情,但我找不到任何(甚至是基本的)这样做的例子......这让我相信我误解了我应该如何使用代码 - bocks(这对我来说无疑是新事物)
那么,您能否告诉我应该如何调用此方法,或者我哪里出错了?