Gepostet: |
AVL Baum Höhe in Knoten speichern | ||||||||||
Hallo ich hab in Haskell noch nicht so viel Erfahrung und komme nicht weiter. Wenn man ein neues Element in einen AVL Baum speichert soll die Höhe der jeweiligen Knoten in den Knoten selber gespeichert werden, damit man beim nächsten Durchlauf nicht alle Höhen wieder von vorn abfragen muss. Hab mir gedacht das ich das als Tupel schreibe. Bekomme leider folgende Fehlermeldung: ERROR file:.\AVLTree.hs:34 - Type error in application *** Expression : i < v *** Term : i *** Type : a *** Does not match : (Integer,a) *** Because : unification would give infinite type Wäre dankbar für Vorschlage, Hinweise.
|
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Hallo, das Problem ist genau das, was die Fehlermeldung sagt ;-) Bei addAVL i (NodeAVL v lf rt) ist das i nach der Typsignatur von addAVL der gleiche Typ, wie die Werte, die im Baum gespeichert sind. Und v ist vom Typ (Integer, a), d.h. du kannst nicht i mit v vergleichen. Eine mögliche Lösung, wäre das Muster zu spezifizieren: addAVL i (NodeAVL (h,v) lf rt) wobei v dann der Wert und h die Höhe ist. Übrigens ist mir aufgefallen, dass du height auf der rechten Seite mal als Funktion und mal als Integer verwendest, das wäre dann auch ein Fehler. Viele Grüße, Siracusa |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
Danke für die Antwort | ||||||||||
Zum Seitenanfang | |||||||||||