1

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

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

因此,当我编写在这棵树中添加元素的函数时,它说树的类型是'a tree,我正在使用'a 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};;

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

谢谢!

4

1 回答 1

2

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

于 2013-05-21T10:49:09.877 回答