Advertisement
Vladi1442

Untitled

Jul 3rd, 2022
492
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. data BTree a = Empty | Node a (BTree a) (BTree a)
  2.     deriving (Show, Eq)
  3.  
  4. t3 :: BTree Int
  5. t3 = Node 1 (Node 2 (Node 4 (Node 7 Empty Empty) Empty) (Node 5 Empty Empty)) (Node 3 Empty (Node 6 Empty (Node 8 Empty Empty)))
  6.  
  7. t4 :: BTree Int
  8. t4 = Node 1 (Node 2 (Node 4 Empty Empty) Empty) (Node 3 Empty Empty)
  9.  
  10. traverseDFS :: BTree a -> [a]
  11. traverseDFS Empty = []
  12. traverseDFS (Node value left right) = (traverseDFS left) ++ [value] ++ (traverseDFS right)
  13.  
  14. getLevel :: BTree a -> a -> [a]
  15. getLevel (Node value Empty Empty) 0 = [value]
  16. getLevel (Node value left right) = getLevel left (k-1) ++ getLevel right (k-1)
  17.  
  18. deepestFromTheLeft :: BTree Int -> Int
  19. deepestFromTheLeft t@(Node value left Empty) = deepestFromTheLeft left == last  
  20.     where
  21.         last = getLevel t k
  22.  
  23. deepestFromTheRight :: BTree Int -> Int
  24. deepestFromTheRight t@(Node value Empty right) = deepestFromTheRight right == last
  25.     where
  26.         last = getLevel t k
  27.  
  28. deepestLeavesSum :: BTree Int -> Int
  29. deepestLeavesSum Empty = 0
  30. deepestLeavesSum (Node value Empty Empty) = value
  31. deepestLeavesSum t@(Node value left right) = deepestFromTheLeft t + deepestFromTheRight t
  32.    
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement