From cfb02eb5e383d39641f01ce69b23c2931a336363 Mon Sep 17 00:00:00 2001 From: SowinskiBraeden Date: Fri, 13 Feb 2026 09:45:43 -0800 Subject: [PATCH] fix binary tree inserts --- lab03/kvtree.ml | 2 ++ lab05/kvtree/kvtree.ml | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lab03/kvtree.ml b/lab03/kvtree.ml index 1f5bc85..9dbedd4 100644 --- a/lab03/kvtree.ml +++ b/lab03/kvtree.ml @@ -17,6 +17,8 @@ let rec kvtree_insert ~cmp k v t = Node (k', v', kvtree_insert ~cmp k v l, r) | Node (k', v', l, r) when cmp k k' > 0 -> Node (k', v', l, kvtree_insert ~cmp k v r) + | Node (k', _, l, r) when cmp k k' = 0 -> + Node (k, v, l, r) | _ -> t;; (**/**)2 diff --git a/lab05/kvtree/kvtree.ml b/lab05/kvtree/kvtree.ml index d3ce24b..56efb78 100644 --- a/lab05/kvtree/kvtree.ml +++ b/lab05/kvtree/kvtree.ml @@ -42,9 +42,11 @@ module Make(Ord: OrderedType) = struct match t with | L -> N (k, v, L, L) | N (k', v', l, r) when Ord.compare k k' < 0 -> - N (k', v', insert k v l, r) + N (k', v', insert k v l, r) | N (k', v', l, r) when Ord.compare k k' > 0 -> - N (k', v', l, insert k v r) + N (k', v', l, insert k v r) + | N (k', _, l, r) when Ord.compare k k' = 0 -> + N (k, v, l, r) | _ -> t;; (** [find_opt k t] takes a key [k] and a kvtree [t] and returns