Implementieren Sie ein Haskell Modul, das binäre Suchbäume realisiert.
module Tree where
-- einfache Struktur für Binärbäume
data Tree a =
Empty
|Branch (Tree a) a (Tree a)
deriving (Eq,Show)
--Größe der Bäume
size :: Num a => Tree t -> a
size _ = 0
--Füge ein Element ein. Mache den Baum zum binären Suchbaum
add :: Ord a => a -> Tree a -> Tree a
add _ t = t
-- ein Operator für die Funktion add
infixr 5 +>
(+>) el t = add el t
-- ist ein Element enthalten. Benutzt die Suchbaumeigenschaft
contains :: Ord a => a -> Tree a -> Bool
contains _ _ = False
--Lösche Elemente aus dem binären Suchbaum
remove :: Ord a => a -> Tree a -> Tree a
remove _ t = t
--ein Operator zum Löschen
infixr 5 >-
(>-) t el = remove el t
--erzeuge eine Liste mit den Elementen aus dem Baum. Durchlaufe inorder
--(sortiert für binären Suchbaum)
inorder :: Tree t -> [t]
inorder _ = []
--verknüpfe alle Elemente des Baums mit einer operation
reduce :: t -> (t -> t -> t) -> Tree t -> t
reduce x _ _ = x
-- wende eine Funktion auf alle Elemente an
--(danach ist es kein binärer Suchbaum mehr)
mappe :: (t -> a) -> Tree t -> Tree a
mappe _ _ = Empty