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}}== |