F# 向二叉树F添加完整的整数列表

F# 向二叉树F添加完整的整数列表,f#,tree,F#,Tree,我有这个密码 type Tree<'T when 'T: comparison> = | Empty | Node of 'T * Tree<'T> * Tree<'T> let rec insert value = function | Empty -> Node(value, Empty, Empty) | Node(v, left, right) when value < v -> Node(v, insert value lef

我有这个密码

type Tree<'T when 'T: comparison> = 
| Empty 
| Node of 'T * Tree<'T> * Tree<'T>

let rec insert value = function
| Empty -> Node(value, Empty, Empty)
| Node(v, left, right) when value < v -> Node(v, insert value left, right)
| Node(v, left, right) when value > v -> Node(v, left, insert value right)
| Node(_, _, _) as n -> n    

列表应该添加到树中

您只需像这样折叠即可

let tree = List.fold (fun tree x -> inser­t x tree)­ Empty­ [5;2;1;6;7];;

在每一步返回一个新树,在下一步中向其中添加下一个元素。您可以使用要添加元素列表的任何现有树,而不是空树。

您只需执行如下折叠即可

let tree = List.fold (fun tree x -> inser­t x tree)­ Empty­ [5;2;1;6;7];;

在每一步返回一个新树,在下一步中向其中添加下一个元素。您可以使用要添加元素列表的任何现有树,而不是空树。

Nice,没有任何内置函数,有没有办法做到这一点?您可以重新发明轮子,编写自己的list.fold版本。看一看,有没有什么办法不用任何内置函数就可以做到这一点?你可以重新发明轮子并编写自己版本的List.fold。看一看