Visualize a tree: Difference between revisions

Content added Content deleted
Line 2,761: Line 2,761:
-- " b1"
-- " b1"
</pre>
</pre>

=={{header|Lua}}==
{{trans|C#}}
<lang 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')
})
})
)</lang>
{{out}}
<pre>A
|-B0
| |-C1
| |-C2
| | \-D
| | |-E1
| | |-E2
| | \-E3
| \-C3
| |-F1
| |-F2
| |-F3
| | \-G
| \-F4
| |-H1
| \-H2
\-B1
|-K1
|-K2
| |-L1
| | \-M
| |-L2
| \-L3
\-K3</pre>


=={{header|Maple}}==
=={{header|Maple}}==