www.jammni.de

Logo - Kleiner Drache
Login
Username:

Passwort:

Daten merken
Auto-Login
Registrieren
 
Online
niemand
 
Forumsuche
Suche nach:

Logo - DracheHaskell-Forum

HasCat

Gepostet:
12.12.2006 00:18

NBäume und ihre Tücken, bitte helft mir!  
hi,
gehöre - wie so viele - zu den anfängern in haskell (und im programmieren überhaupt)
und verzweifle an einer dreifachen aufgabe:

1.countbr :: Tree a -> Int
diese funktion soll die Verzweigungen in einem Baum zählen...

2.balanced :: Int -> Tree a -> Bool
hiermit soll angegeben werden, wie balanciert ein baum ist (rechts-,linksgekämmt, ausgeglichen..), wobei die Variable k das 1.argument ist bzw.
die "balancierung" angibt und >=0 sein muss..

3. eine funktion minmaxpath, die ein Paar (wahrscheinlich sowas wie: minmaxpath :: Tree a -> (Int,Int)) liefert, dass einerseits die minimale Länge und auch maximale Länge in einem Baum angibt...

dazu muss ich sagen, dass wir data Tree a = Nil |Leaf a |Br (Tree a)(Tree a) definiert haben..

Bin dankbar fuer jeden Tipp,

gruesse,
HasCATSmilieSmilie
Zum Seitenanfang    
 
Jacke

Gepostet:
12.12.2006 08:14

   
hallo HasCat,
erstmal willkommen in unseren kleinen forum. :-)
also ein paar tipps hätte ich für dich

hier erstmal eine einfach definition eines Baums,


data Tree=NilT | Node Int Tree Tree deriving (Eq,Ord,Show,Read)


aufgabe 1

lengthTree NilT=0
lengthTree (Node n t1 t2)=1+(lengthTree t1) +(lengthTree t2)

aufgabe 3 du mußt nur noch minP und maxP zu einen Tupel zusammenfügen

maxP NilT=0
maxP (Node n t1 t2)= n + max (maxP t1) (maxP t2)

minP NilT=0
minP (Node n t1 t2)= n + min (minP t1) (minP t2)


die funktionen kannst du zum testen benutzen


depth NilT=0
depth (Node n t1 t2)= 1 + min (depth t1) (depth t2)

baum = Node 3 (Node 2 NilT NilT)(Node 7 NilT NilT)

show NilT= ""
show Node (n t1 t2)= n++"+"++show (t1)++"+"++show(t2)


aufgabe 2 kannst du ja mal alleine versuchen.

falls du fragen zu den lösungen hast, frag einfach. :-)
gruß jackeSmilie
Zum Seitenanfang