65 lines
1.5 KiB
Lua
65 lines
1.5 KiB
Lua
function makeTree(v,ac)
|
|
if type(ac) == "table" then
|
|
return {value=v,children=ac}
|
|
else
|
|
return {value=v}
|
|
end
|
|
end
|
|
|
|
function printTree(t,last,prefix)
|
|
if last == nil then
|
|
printTree(t, false, '')
|
|
else
|
|
local current = ''
|
|
local next = ''
|
|
|
|
if last then
|
|
current = prefix .. '\\-' .. t.value
|
|
next = prefix .. ' '
|
|
else
|
|
current = prefix .. '|-' .. t.value
|
|
next = prefix .. '| '
|
|
end
|
|
|
|
print(current:sub(3))
|
|
if t.children ~= nil then
|
|
for k,v in pairs(t.children) do
|
|
printTree(v, k == #t.children, next)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
printTree(
|
|
makeTree('A', {
|
|
makeTree('B0', {
|
|
makeTree('C1'),
|
|
makeTree('C2', {
|
|
makeTree('D', {
|
|
makeTree('E1'),
|
|
makeTree('E2'),
|
|
makeTree('E3')
|
|
})
|
|
}),
|
|
makeTree('C3', {
|
|
makeTree('F1'),
|
|
makeTree('F2'),
|
|
makeTree('F3', {makeTree('G')}),
|
|
makeTree('F4', {
|
|
makeTree('H1'),
|
|
makeTree('H2')
|
|
})
|
|
})
|
|
}),
|
|
makeTree('B1',{
|
|
makeTree('K1'),
|
|
makeTree('K2', {
|
|
makeTree('L1', {makeTree('M')}),
|
|
makeTree('L2'),
|
|
makeTree('L3')
|
|
}),
|
|
makeTree('K3')
|
|
})
|
|
})
|
|
)
|