La forma correcta de usar una estructura de datos en OCaml
Ok he escrito unbinary search tree
en OCaml.
type 'a bstree =
|Node of 'a * 'a bstree * 'a bstree
|Leaf
let rec insert x = function
|Leaf -> Node (x, Leaf, Leaf)
|Node (y, left, right) as node ->
if x < y then
Node (y, insert x left, right)
else if x > y then
Node (y, left, insert x right)
else
node
Supongo que el código anterior no tiene problemas.
Cuando lo uso, escribo
let root = insert 4 Leaf
let root = insert 5 root
...
¿Es esta la manera correcta deuse/insert
al arbol?
Quiero decir, supongo que no debería declarar la raíz y cada vez que cambio el valor de la raíz variable, ¿no?
Si es así, ¿cómo puedo mantener siempre una raíz y puedo insertar un valor en el árbol en cualquier momento?