在Ocaml中的树中添加元素

时间:2013-05-21 10:41:53

标签: tree ocaml binary-tree

所以,这是我的问题.. 我需要编写一个将在树中添加元素的函数,它是一个二叉树,所以它必须组织得很好。问题在于我的树是如何定义的。 我有这棵树:

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};;

请帮助我并提供一些线索。

谢谢!

1 个答案:

答案 0 :(得分:2)

Node构造函数应该使用'a tree而不是'a bin_tree