因此,这里是我的问题。 我需要编写一个函数,它将在树中添加元素,它是一棵二叉树,因此它必须组织良好。问题在于如何定义我的树。 我有这样的树:在Ocaml的'树中添加元素
type 'a tree = {
mutable cont:'a;
mutable left:'a bin_tree;
mutable right:'a bin_tree
}
and 'a bin_tree =
Empty
|Node of 'a bin_tree;;
所以,当我写的功能,此树添加元素它说,该树的类型为“一棵树,我使用的功能”一bin_tree。
我尝试了很多不同的方式来编写该函数,我得到了同样的错误。 我用最后的功能是:
let rec dodajVDrevo x = function
Empty -> Node{cont=x; left=Empty; right=Empty}
|Node{cont; left; right} -> if x < cont then Node{cont; left= dodajVDrevo x left; right}
else if x > cont then Node{cont; left; right = dodajVDrevo x right}
else Node{cont; left; right};;
请帮帮我,给了一些线索。
谢谢!
为什么你将left,right和cont定义为mutable?你的add函数(dodajVDrevo)已经是纯粹的了。 因为它看起来像功课,我认为你的锻炼感觉得到功能性编程风格的熟悉;不会变脏的c-like ocaml代码。 – rafix
这是一个重复的:http://stackoverflow.com/questions/16507273/ocaml-tree-simple-functions – Thomash