Visualize a tree: Difference between revisions
Content added Content deleted
(Added Erlang) |
No edit summary |
||
Line 341: | Line 341: | ||
| `-- (nil) |
| `-- (nil) |
||
`-- (nil) |
`-- (nil) |
||
</pre> |
|||
=={{header|Icon}} and {{header|Unicon}}== |
|||
The following works in both languages. |
|||
<lang unicon>procedure main(A) |
|||
showTree("", " _", [1, [2,[3],[4,[5],[6]],[7,[11]]], [8,[9,[10]]] ]) |
|||
write() |
|||
showTree("", " _", [1, [2,[3,[4]]], [5,[6],[7,[8],[9]],[10]] ]) |
|||
end |
|||
procedure showTree(prefix, lastc, A) |
|||
write(prefix, lastc, "__", A[1]) |
|||
if *A > 1 then { |
|||
lastc := (if prefix[-1] == "|" then " " else " ") |
|||
every showTree(prefix||lastc||"|", "_", !A[2:2 < *A]) |
|||
showTree(prefix||lastc, "`_", \A[*A]) |
|||
} |
|||
end</lang> |
|||
Output: |
|||
<pre> |
|||
->tree |
|||
___1 |
|||
|___2 |
|||
| |___3 |
|||
| |___4 |
|||
| | |___5 |
|||
| | `___6 |
|||
| `___7 |
|||
| `___11 |
|||
`___8 |
|||
`___9 |
|||
`___10 |
|||
___1 |
|||
|___2 |
|||
| `___3 |
|||
| `___4 |
|||
`___5 |
|||
|___6 |
|||
|___7 |
|||
| |___8 |
|||
| `___9 |
|||
`___10 |
|||
-> |
|||
</pre> |
</pre> |
||