data BTree a = Empty | Node a (BTree a) (BTree a)
deriving (Show)
n=Node 50 (Node 30 (Node 10 Empty (Node 20 Empty Empty)) (Node 40 Empty Empty)) Empty
-- min element na durvo
minTree (Node v Empty _ )=v
minTree (Node _ l _ )=minTree l
--dobavq element
insertBot Empty x=Node x Empty Empty
insertBot (Node v l r) x
|v<=x= Node v l(insertBot r x)
--iztriva element |otherwise=Node v (insertBot l x) r
delBot Empty x=Empty
delBot (Node v l r) x
|v<x=Node v l (delBot r x)
|v>x=Node v (delBot l x) r
|otherwise=deleteRoot(Node v l r)
deleteRoot (Node v Empty Empty)=Empty
deleteRoot (Node v l Empty)=l
deleteRoot (Node v Empty r)=r
deleteRoot (Node v l r)=Node (minTree r) l (delBot r (minTree r))
t=Node (5,100) (Node (10,70) (Node (20,60) Empty Empty) (Node (6,71) Empty Empty)) (Node (1,200) Empty Empty)