Binärer Suchbaum erzeugen bzw. unorderable types: int() < No
Verfasst: Donnerstag 27. November 2014, 14:08
Hallo zusammen,
als erstes möchte ich anmerken, daß ich Foren-Neuling bin und nach meinem Thema das Forum, leider ohne Erfolg,
durchsucht habe. Sollte es doch schon irgendwo behandelt worden sein, bitte ich um Entschuldigugn und freue mich
über einen Link
Ansonsten hau ich mal meine Frage raus, vlt weiss ja jemand Rat:
Und zwar bin ich dabei einen Binären Suchbaum zu implementieren:
Die Klasse hat noch andere Funktionen aber nur die insert macht mir Probleme.
Den key in der Parameter liste habe ich mit Absicht auf None gesetzt damit ich einen leeren Baum erzeugen kann.
Um den Baum mit Testdaten zu füllen habe ich eine Random Liste geschrieben und will in einer Schleife alle Elemente
der Liste an den Baum anhängen. Leider bekomme ich dabei eine Fehlermeldung
endet in: TypeError: unorderable types: int() < NoneType()
Wenn ich allerdings einen neuen Baum mit z.B.
erzeuge, also direkt die Wurzel des Baums mitliefere klappt der Code. Es gibt also anscheined eine Typ Kollision.
Weiss jemand wie ich den Code ändern muss, um einen leeren Baum zu erzeugen den ich mit der beschriebenen
insert Methode füllen kann?
Wäre toll wenn jemand ne Idee hätte.
Vielen Dank schonmal
als erstes möchte ich anmerken, daß ich Foren-Neuling bin und nach meinem Thema das Forum, leider ohne Erfolg,
durchsucht habe. Sollte es doch schon irgendwo behandelt worden sein, bitte ich um Entschuldigugn und freue mich
über einen Link
Ansonsten hau ich mal meine Frage raus, vlt weiss ja jemand Rat:
Und zwar bin ich dabei einen Binären Suchbaum zu implementieren:
Code: Alles auswählen
class BST(object): #Klasse Binary Search Tree
def __init__(self, key=None, leftTree=None, rightTree=None, value=None):
self.key = key
self.leftTree = leftTree
self.rightTree = rightTree
self.value = value
def insert(self, key):
if key < self.key:
if self.leftTree == None:
self.leftTree = BST(key)
else:
self.leftTree.insert(key)
elif key > self.key:
if self.rightTree == None:
self.rightTree = BST(key)
else:
self.rightTree.insert(key)
Den key in der Parameter liste habe ich mit Absicht auf None gesetzt damit ich einen leeren Baum erzeugen kann.
Code: Alles auswählen
binaryTree = BST()der Liste an den Baum anhängen. Leider bekomme ich dabei eine Fehlermeldung
Code: Alles auswählen
liste = [random.randrange(1, 100) for _ in range(100)]
for i in range(0, len(liste)-1):
binaryTree.insert(liste[i])
Wenn ich allerdings einen neuen Baum mit z.B.
Code: Alles auswählen
binaryTree = BST(5)Weiss jemand wie ich den Code ändern muss, um einen leeren Baum zu erzeugen den ich mit der beschriebenen
insert Methode füllen kann?
Wäre toll wenn jemand ne Idee hätte.
Vielen Dank schonmal