Skip to content

Instantly share code, notes, and snippets.

@onlyshk
Created July 21, 2011 16:33
Show Gist options
  • Save onlyshk/1097577 to your computer and use it in GitHub Desktop.
Save onlyshk/1097577 to your computer and use it in GitHub Desktop.
Binary tree in haskell
module Data.BTree where
data Tree a = EmptyTree
| Node a (Tree a) (Tree a)
deriving (Eq, Ord, Read, Show)
emptyTree :: a -> Tree a
emptyTree a = Node a EmptyTree EmptyTree
treeInsert :: (Ord a) => a -> Tree a -> Tree a
treeInsert x EmptyTree = emptyTree x
treeInsert x (Node a left right)
| x == a = (Node x left right)
| x < a = (Node a (treeInsert x left) right)
| x > a = (Node a left (treeInsert x right))
fillTree :: Int -> Tree Int -> Tree Int
fillTree 10000 tree = tree
fillTree x tree = let a = treeInsert x tree
in fillTree (x + 1) a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment