diff options
-rw-r--r-- | H63.hs | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -1,8 +1,12 @@ import Tree +import Control.Applicative completeBinaryTree n = makeTree 1 where makeTree x | x > n = Empty | otherwise = Branch 'x' (makeTree (2*x)) (makeTree (2*x+1)) -isCompleteBinaryTree +isCompleteBinaryTree t = b>a where + [a, b] = getZipList $ maxmin t 1 + maxmin Empty m = ZipList [0, m] + maxmin (Branch _ l r) m = ZipList [max.(max m),min] <*> (maxmin l (2*m)) <*> (maxmin r (2*m + 1)) |