I am having a difficult time figuring out how to implement a 2d binary tree using sml
This is what I have so far but I get a tycon mismatch.
datatype btree =
Empty |
Node of int * btree * btree;
fun AddNode (i:int, Empty) = Node(i, Empty, Empty) |
AddNode(i:int, Node(j, left, right)) =
if i = j then Node(i, left, right)
else if i < j then Node(j, AddNode(i, left), right)
else Node(j, left, AddNode(i, right));
fun printInorder Empty = () |
printInorder (Node(i,left,right)) =
(printInorder left; print(Int.toString i ^ " "); printInorder right);
datatype twotree =
Empty |
Node of int * twotree * twotree * btree;
fun Add2Node(int:i, int:j, Empty) = Node(i, btree, Empty, Empty) |
Add2Node(int:i, int:j, Node(k, btree, left, right)) =
if i = k then Node(i, Addnode(j, root), left, right)
else if i < k then Node(k, root, Add2Node(i, j, left), right)
else Node(k, root, left, Add2Node(i, j, right));
val x : btree = AddNode(50, Empty);
val x : btree = AddNode(75, x);
val x : btree = AddNode(25, x);
printInorder(x);
The val were originally to test the first part of the binary tree but once I tried to do the 2d part, It created an error with the original AddNode