Skip to content

Instantly share code, notes, and snippets.

@vojto
Created March 6, 2012 10:24
Show Gist options
  • Select an option

  • Save vojto/1985565 to your computer and use it in GitHub Desktop.

Select an option

Save vojto/1985565 to your computer and use it in GitHub Desktop.
Cvicenie 3
-- # --------------------------------------------------------------------------
-- # Enumeracne typy
-- # --------------------------------------------------------------------------
data Eval = A|B|C|D|E|FX deriving(Show, Eq, Ord, Enum)
-- # --------------------------------------------------------------------------
-- # Dni
-- # --------------------------------------------------------------------------
data Dni = Po|Ut|St|Stv|Pi|So|Ne deriving(Show, Eq, Ord, Enum)
-- bodka: zretazenie metod
jePracovnyDen = not.jeVikend
jeVikend den = (den == So) || (den == Ne)
-- # --------------------------------------------------------------------------
-- # Binarny strom
-- # --------------------------------------------------------------------------
-- Bude mat pravy aj lavy list
data BTree a = Tip a | Bin (BTree a) (BTree a) deriving (Show)
-- Uloha: Transformovat do zoznamu
bTreeToList (Tip x) = [x]
bTreeToList (Bin l r) = (bTreeToList l) ++ (bTreeToList r)
strom1 = (Bin (Bin (Tip 1) (Tip 2)) (Bin (Tip 3) (Tip 4)))
strom2 = (Bin (Bin (Tip "aa") (Tip "bb")) (Bin (Tip "cc") (Tip "dd")))
-- # --------------------------------------------------------------------------
-- # Binarny vyhladavaci strom
-- # --------------------------------------------------------------------------
data BSTree a = Nil | Bin a (BSTree a) (BSTree a) deriving(Show)
bsTreeInsert x Nil = (Bin x Nil Nil)
bsTreeInsert x (Bin v left right) | x < v = (Bin v (bsTreeInsert x left) right)
| x > v = (Bin v left (bsTreeInsert x right))
-- bsTreeFromList
-- Transformuje zoznam na binarny vyhladavaci strom
bsTreeFromList xs = foldr (bsTreeInsert) Nil xs
-- bsTreeDelete
-- Odstranenie
-- Ak je vlavo, tak hladam najvacsiu hodnotu
-- Ak je vpravo, tak hladam najmensiu hodnotu
-- bsTreeDelete x (Bin v left right) = | x == v =
strom1 = (Bin 5 Nil Nil)
-- (bsTreeDelete )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment