From ec7ff7ede6eb9a5092d453ae799d1ab1dfb744bd Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Wed, 4 Sep 2024 12:17:06 +0100 Subject: [PATCH] some refactoring (and progress filling in the FOUND_WITH_CHILDREN case in the 'helpInsert' function) --- src/string-set | Bin 283368 -> 0 bytes src/string-set.sml | 62 ++++++++++++++++++++++++++++----------------- 2 files changed, 39 insertions(+), 23 deletions(-) delete mode 100755 src/string-set diff --git a/src/string-set b/src/string-set deleted file mode 100755 index c57ee60bf8fd240b3d594df7a13d148b13942bd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283368 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 D8nWtA diff --git a/src/string-set.sml b/src/string-set.sml index bdade84..a051e08 100644 --- a/src/string-set.sml +++ b/src/string-set.sml @@ -238,6 +238,31 @@ struct * - Complete code for FOUND_WITH_CHILDREN case in insert function. *) + fun insertNewChild (keys, insIdx, insKey, children, constructor) = + let + val newLength = Vector.length keys + 1 + val newKeys = Vector.tabulate (newLength, fn idx => + if idx < insIdx then Vector.sub (keys, idx) + else if idx > insIdx then Vector.sub (keys, idx - 1) + else insKey) + + val newChildren = Vector.tabulate (newLength, fn idx => + if idx < insIdx then Vector.sub (children, idx) + else if idx > insIdx then Vector.sub (children, idx - 1) + else FOUND) + + in + constructor {keys = newKeys, children = newChildren} + end + + fun appendNewChild (keys, insKey, children, constructor) = + let + val newKeys = Vector.concat [keys, Vector.fromList [insKey]] + val newChildren = Vector.concat [children, Vector.fromList [FOUND]] + in + constructor {keys = newKeys, children = newChildren} + end + fun helpInsert (insKey, keyPos, trie) : t = case trie of FOUND => @@ -254,21 +279,7 @@ struct in (case insertBinSearch (findChr, keyPos, keys) of INSERT_NEW_CHILD insIdx => - let - val newLength = Vector.length keys + 1 - val newKeys = Vector.tabulate (newLength, fn idx => - if idx < insIdx then Vector.sub (keys, idx) - else if idx > insIdx then Vector.sub (keys, idx - 1) - else insKey) - - val newChildren = Vector.tabulate (newLength, fn idx => - if idx < insIdx then Vector.sub (children, idx) - else if idx > insIdx then Vector.sub (children, idx - 1) - else FOUND) - - in - CHILDREN {keys = newKeys, children = newChildren} - end + insertNewChild (keys, insIdx, insKey, children, CHILDREN) | FOUND_INSERT_POS insIdx => let val trieKey = Vector.sub (keys, insIdx) @@ -373,15 +384,20 @@ struct end) end | APPEND_NEW_CHILD => - let - val newKeys = Vector.concat [keys, Vector.fromList [insKey]] - val newChildren = Vector.concat - [children, Vector.fromList [FOUND]] - in - CHILDREN {keys = newKeys, children = newChildren} - end) + appendNewChild (keys, insKey, children, CHILDREN)) + end + | FOUND_WITH_CHILDREN {keys, children} => + let + val findChr = String.sub (insKey, keyPos) + in + (case insertBinSearch (findChr, keyPos, keys) of + INSERT_NEW_CHILD insIdx => + insertNewChild + (keys, insIdx, insKey, children, FOUND_WITH_CHILDREN) + | FOUND_INSERT_POS insIdx => raise Empty + | APPEND_NEW_CHILD => + appendNewChild (keys, insKey, children, FOUND_WITH_CHILDREN)) end - | FOUND_WITH_CHILDREN {keys, children} => raise Empty (* todo *) fun insert (insKey, trie) = if String.size insKey > 0 then helpInsert (insKey, 0, trie) else trie