Решенеия на задачите от упражненията

Решения на задачите от 10.01.07

Решения на задачите от 10.01.07 на Антон, Светлин и Бинев (малко)

от Антон Илиев -
Number of replies: 0

--napraveno ot Anton i Svetlin, a binev uchastvashe kato durvo i o6te ne6to

super::String->String->String
super a b = a++b++b

super2::Int->Int->Int
super2 a b = a*b + b

data Seasons = Spring | Summer | Autumn | Winter deriving (Show, Eq)
seasonIndex Spring = 0
seasonIndex Summer = 1
seasonIndex Autumn = 2
seasonIndex Winter = 3
data Person = MakePerson String Int String deriving (Show)
my (MakePerson name age address) = age

--definirane na durvoto binev
data BinTree = Empty | Node Int BinTree BinTree deriving (Show, Eq)

--tova e samiq binev
b = Node 4 (Node 3 Empty (Node 1 Empty Empty)) (Node 6 Empty Empty)

sumList [] = 0
sumList l = (head l) + (sumList(tail l))

sumTree Empty = 0
sumTree (Node v l r) = v + sumTree l + sumTree r

sumEven Empty = 0
sumEven (Node v l r) = if even v then v + sumEven l + sumEven r else sumEven l + sumEven r

sumL Empty = 0
sumL (Node v l r) = if (l==Empty)&&(r==Empty) then v else sumL l + sumL r

-- List ot vuzlite na binev
lNode Empty = []
lNode (Node v l r) = v : ((lNode l)++(lNode r))

--viso4inata na binev
heightT Empty = 0
heightT (Node v l r) = 1 + max (heightT l) (heightT r)

--Spisak ot elementite na dadeno nivo na binev
level (Node v l r) 0 = [v]
level Empty k = []
level (Node v l r) k = (level l (k-1))++(level r (k-1))