Haskell - Binärbaum < Haskell < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Aufgabe | Gegeben ist der HASKELL-Typ eines BinÄarbaumes data BT = E | T Int BT BT. Dabei beszeichnet der Kon-
struktor E einen leeren Baum und T i l r einen Baum, dessen Wurzel mit einer ganzen Zahl i markiert ist
und der den linken Unterbaum l und den rechten Unterbaum r hat.
Beschreiben Sie die HASKELL-Funktion dellast::BT->BT, die in einem Heap den letzten Knoten löscht |
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Hallo, hab da mal eine wichtige frage und zwar wie implementiere ich eine Funktion, die denn kleinsten Knoten eines Binärbaumes löscht.
Folgende Anfangsidee:
erst einmal Baum implementieren:
data BT = E | T Int BT BT deriving(Show)
dann brauch ich bestimmt auch die höhe des Baumes, also:
height::BT->Int
height E = 0
height (T _ l r) | hl>=hr = hl+1 | otherwise = hr+1
where
hl = height l
hr = height r
meine Idee war, ich bestimme das letzte Element des Baumes, dazu brauch ich eine neue Fkt.
lastval::BT->Int -- gibt letzten Wert aus Heap aus
lastval E = error "leerer Baum"
lastval (T z E E) = z
lastval (T z l r)
| height l>height r = lastval l
| otherwise = lastval r
An dieser Stelle bleibe ich immer stecken. Wie kann ich diesen Wert löschen und denn Rest des Baumes wieder ausgeben?
Vielleicht fang ich auch falsch an.
Kann jemand helfen?
dellast::BT->BT
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:49 Mo 03.12.2007 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|