我正在尝试编写一个显示树的函数,用/或\(左或右子)替换树块加上它们下面的Int值。 树的定义如下:
data Tree x
= Null
| Leaf x
| Node (Tree x) x (Tree x)
deriving Show
并且它只能包含五个一位数值,例如在树后面:
Node(Node(Leaf 1)(2)(Leaf 3))(3)(Node(Null)(4)(Leaf 5))
会以这种方式显示:
3
/ \
2 4
/ \ \
1 3 5
我认为由于空间有限,有更多节点和更高的树会有一些节点重叠,但在这种情况下它应该没问题,因为该功能是单独处理二进制搜索树。
我有一个功能可供我使用,需要[[bool]]并打印线条,用字符替换布尔值,但是......我不知道如何在这种特殊情况下使用它......任何帮助都会不胜感激。