Files
cs-252/lab04/tree.hs
2026-02-11 11:27:00 -08:00

37 lines
744 B
Haskell

--This works, but it is not generic
data TreeStringInt =
EmptyTSI
| NodeTSI String Int TreeStringInt TreeStringInt
deriving (Show)
findTsi :: String -> TreeStringInt -> Maybe Int
findTsi _ EmptyTSI = Nothing
findTsi s (NodeTSI key i left right) =
if key == s then
Just i
else if s < key then
findTsi s left
else
findTsi s right
--Using type parameters, we can create a BST in a more generic form
data Tree k v =
Empty
| Node k v (Tree k v) (Tree k v)
deriving (Show)
--findT :: k -> Tree k v -> Maybe v
findT :: Ord k => k -> Tree k v -> Maybe v
findT _ Empty = Nothing
findT s (Node key val left right) =
if key == s then
Just val
else if s < key then
findT s left
else
findT s right