From ef5f19da8865b53f6edf68041a8e270a28031955 Mon Sep 17 00:00:00 2001 From: Joe Zhao Date: Sun, 5 Apr 2015 15:33:17 +0800 Subject: +H55 +H56 +Tree --- H55.hs | 6 ++++++ H56.hs | 8 ++++++++ Tree.hs | 4 ++++ 3 files changed, 18 insertions(+) create mode 100644 H55.hs create mode 100644 H56.hs create mode 100644 Tree.hs diff --git a/H55.hs b/H55.hs new file mode 100644 index 0000000..a6e6a95 --- /dev/null +++ b/H55.hs @@ -0,0 +1,6 @@ +import Tree + +cbalTree :: Int -> [Tree Char] +cbalTree 0 = [Empty] +cbalTree n = let (q, r) = (n-1) `quotRem` 2 in + [ Branch 'x' x y | i <- [q .. q + r], x <- cbalTree i, y <- cbalTree $ n - i - 1] diff --git a/H56.hs b/H56.hs new file mode 100644 index 0000000..3cf7127 --- /dev/null +++ b/H56.hs @@ -0,0 +1,8 @@ +import Tree + +mirror :: Tree a -> Tree a -> Bool +mirror Empty Empty = True +mirror a@(Branch _ a1 a2) b@(Branch _ b1 b2) = (mirror a1 b2) && (mirror a2 b1) +mirror _ _ = False + +symmetric t = mirror t t diff --git a/Tree.hs b/Tree.hs new file mode 100644 index 0000000..dcfef1a --- /dev/null +++ b/Tree.hs @@ -0,0 +1,4 @@ +module Tree where + +data Tree a = Empty | Branch a (Tree a) (Tree a) + deriving (Show, Eq) -- cgit v1.2.3-70-g09d2