diff --git a/Haskell/treeDepth.hs b/Haskell/treeDepth.hs new file mode 100644 index 0000000..bdee042 --- /dev/null +++ b/Haskell/treeDepth.hs @@ -0,0 +1,7 @@ +data Tree t = Node t (Tree t) (Tree t) | Nilt deriving (Read, Show) + +depth :: Tree t -> Int +depth Nilt = 0 +depth (Node x tl tr) = max depthLeft depthRight + where depthLeft = (depth tl) + 1 + depthRight = (depth tr) + 1 \ No newline at end of file diff --git a/Haskell/treeInsert.hs b/Haskell/treeInsert.hs new file mode 100644 index 0000000..71801eb --- /dev/null +++ b/Haskell/treeInsert.hs @@ -0,0 +1,14 @@ +data Tree t = Node t (Tree t) (Tree t) | Nilt deriving (Read, Show) + +insert :: Ord t => Tree t -> t -> Tree t +insert Nilt x = Node x Nilt Nilt +insert (Node x treeL treeR) num = ins num x + where ins num x + | num < x = (Node x (insert treeL num) treeR) + | otherwise = (Node x treeL (insert treeR num)) + +-- Receive a tree and a list of numbers and insert them into the tree +insertList :: Ord t => Tree t -> [t] -> Tree t +insertList tree (x:[]) = insert tree x +insertList tree (x:xs) = insertList t xs + where t = insert tree x \ No newline at end of file