lua二叉树的先序遍历
树:
a,b,c,d,e,f,g,h,i,j={},{},{},{},{},{},{},{},{},{}
a.data = "a"
b.data = "b"
c.data = "c"
a.left = b
a.right = c
d.data = "d"
e.data = "e"
f.data = "f"
g.data = "g"
b.left = d
b.right = e
c.left = f
c.right = g
h.data = "h"
i.data = "i"
j.data = "j"
d.left = h
d.right = i
e.left = j
1,先序遍历代码:
local nodedian={}
local function treefind(tree)
if tree == nil then
--print(1)
return
end
table.insert(nodedian,tree.data)
treefind(tree.left)
treefind(tree.right)
end
treefind(a)
print(table.concat(nodedian,","))
输出结果为:a,b,d,h,i,e,j,c,f,g
2,中序遍历代码:
local nodedian={}
local function treefind(tree)
if tree == nil then
--print(1)
return
end
treefind(tree.left)
table.insert(nodedian,tree.data)
treefind(tree.right)
end
treefind(a)
print(table.concat(nodedian,","))
输出结果:h,d,i,b,j,e,a,f,c,g
3,后序遍历代码:
local nodedian={}
local function treefind(tree)
if tree == nil then
--print(1)
return
end
treefind(tree.left)
treefind(tree.right)
table.insert(nodedian,tree.data)
end
treefind(a)
print(table.concat(nodedian,","))
遍历结果:
h,i,d,j,e,b,f,g,c,a