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