Skip to content

Instantly share code, notes, and snippets.

@jagbolanos
Created September 14, 2012 23:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jagbolanos/3725568 to your computer and use it in GitHub Desktop.
Save jagbolanos/3725568 to your computer and use it in GitHub Desktop.
Binary Tree
data BinaryTree a = BinaryNode a (BinaryTree a) (BinaryTree a) | BinaryNullNode
instance Show a => Show (BinaryTree a) where
show BinaryNullNode = " null"
show (BinaryNode a l r) = " (" ++ show a ++ show l ++ show r ++ ")"
search BinaryNullNode _ = False
search (BinaryNode a l r) v
| v == a = True
| v < a = search l v
| v > a = search r v
addValue v BinaryNullNode = BinaryNode v BinaryNullNode BinaryNullNode
addValue v (BinaryNode a l r)
| v == a = BinaryNode a l r
| v < a = BinaryNode a (addValue v l) r
| v > a = BinaryNode a l (addValue v r)
buildFromList [] t = t
buildFromList (x:xs) t = buildFromList xs (addValue x t)
build l = buildFromList l BinaryNullNode
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment