Visualize a tree: Difference between revisions
Content added Content deleted
Line 69: | Line 69: | ||
| `--1 |
| `--1 |
||
`--1 |
`--1 |
||
</pre> |
|||
=={{header|Haskell}}== |
|||
Tree borrowed from [[Tree traversal]]: |
|||
<lang haskell>data Tree a = Empty | Node { value :: a, left :: Tree a, right :: Tree a } |
|||
deriving (Show, Eq) |
|||
tree = Node 1 (Node 2 (Node 4 (Node 7 Empty Empty) Empty) |
|||
(Node 5 Empty Empty)) (Node 3 (Node 6 (Node 8 Empty Empty) |
|||
(Node 9 Empty Empty)) Empty) |
|||
treeIndent Empty = ["-- (nil)"] |
|||
treeIndent t = ["--" ++ show (value t)] |
|||
++ map (" |"++) ls ++ (" `" ++ r):map (" "++) rs |
|||
where |
|||
(r:rs) = treeIndent$right t |
|||
ls = treeIndent$left t |
|||
main = mapM_ putStrLn $ treeIndent tree</lang> |
|||
{{out}} |
|||
<pre> |
|||
--1 |
|||
|--2 |
|||
| |--4 |
|||
| | |--7 |
|||
| | | |-- (nil) |
|||
| | | `-- (nil) |
|||
| | `-- (nil) |
|||
| `--5 |
|||
| |-- (nil) |
|||
| `-- (nil) |
|||
`--3 |
|||
|--6 |
|||
| |--8 |
|||
| | |-- (nil) |
|||
| | `-- (nil) |
|||
| `--9 |
|||
| |-- (nil) |
|||
| `-- (nil) |
|||
`-- (nil) |
|||
</pre> |
</pre> |
||
=={{header|Maxima}}== |
=={{header|Maxima}}== |