所以,这是我的问题.. 我需要编写一个将在树中添加元素的函数,它是一个二叉树,所以它必须组织得很好。问题在于我的树是如何定义的。 我有这棵树:
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};;
请帮助我并提供一些线索。
谢谢!
答案 0 :(得分:2)
Node
构造函数应该使用'a tree
而不是'a bin_tree
。