I am starting to learn Haskell and therefore I tried to implement a Binary Search Tree. My current code looks like this:
data SearchTree = Empty | Node Int SearchTree SearchTree
deriving Show
insert :: SearchTree -> Int -> SearchTree
insert Empty x = (Node x Empty Empty)
insert (Node n tl tr) x = if (x > n)
then insert tr x
else insert tl x
But somehow the second part of the insert
function is not working correctly. If I try these lines of code:
insert (Node 2 Empty Empty) 4
the result is Node 4 Empty Empty
instead of a result like: Node 2 Empty (Node 4 Empty Empty)
that I expected.
Can someone tell me, what I did wrong? Thanks :)