【发布时间】:2017-05-04 19:14:58
【问题描述】:
我一直在学习 lua,但似乎无法对这个二叉树进行简单的实现......
function createTree(tree, max)
if max > 0 then
tree = {data = max, left = {}, right = {}}
createTree(tree.left, max - 1)
createTree(tree.right, max - 1)
end
end
function printTree(tree)
if tree then
print(tree.data)
printTree(tree.left)
printTree(tree.right)
end
end
tree = {}
createTree(tree, 3)
printTree(tree)
程序在执行后只返回 nil。我在网上搜索以了解参数传递在 lua 中的工作原理(如果是通过引用或通过值),并发现某些类型是通过引用传递的(如表和函数),而另一些是通过值传递的。尽管如此,在将全局变量“tree”传递给“createTree”函数之前,我还是将它设为了一个表,并且出于相同目的,我什至将“left”和“right”初始化为“createTree”内部的空表。我做错了什么?
【问题讨论】:
标签: function lua arguments binary-tree lua-table