我目前正在 F# 中构建我的二叉树,我快完成了。我正在完成这项任务的最后一项任务,我应该在其中制作二叉树的字符串表示形式。这意味着树应该像这样呈现:
示例:("node" "value" ("node" "value" "Empty" "Empty") Empty)
<- 具有根节点的树,该树具有一个左子树,一个节点具有两个空子树和一个空右子树。
我的树看起来像这样:
type Btree<'a when 'a: comparison> =
|Node of 'a * Btree<'a> *Btree<'a>
|Leaf of 'a
|EmptyTree
这是我已经走了多远:
let rec treeToString bintree =
match bintree with
|EmptyTree -> "Empty" //Check if the tree is empty
|Node(inner, left, right) when inner = 0 -> "Empty"
|Leaf x-> "Node"+x.ToString() //Returns "Node" and its value
|Node(inner, left, right) when inner <> 0-> treeToString left //Need some kind of output here, but what?
|Node(inner, left, right) when inner <> 0->treeToString right
我的方法只返回一个值,所以我的解决方案的实际问题是让递归部分正确。
所以我的问题是:我在这里做错了什么?