ich habe ein Programm geschrieben, dass rekursiv einen Binärbaum erstellen soll.(x und y sind im Moment noch irrelevant)
Code: Alles auswählen
class start:
def __init__(self):
x = 100
y = 100
k = BinTree(8)
j = BinTree(7)
f = BinTree(5,j,k)
e = BinTree(6)
b = BinTree(2,e,f)
g = BinTree(4)
empty = BinTree()
c = BinTree(3,empty,g)
a = BinTree(1,b,c)
zeichnen = Zeichnen()
zeichnen.sortieren(a.getRoot(),x,y)
class BinTree:
def __init__(self, v=None, left=None, right=None):
global root
if v == None and left == None and right == None:
root = None
elif left==None and right==None:
root = Node(v,None,None)
else:
root = Node(v,left.getRoot(),right.getRoot())
def getRoot(self):
return root
class Node:
def __init__(self, pvalue, pleft, pright):
global value,left,right
value = pvalue
left = pleft
right = pright
def getValue(self):
return value
def getLeft(self):
return left
def getRight(self):
return right
class Zeichnen:
def __init__(self):
None
def sortieren(self,node,x,y):
self.malen(node,x,y)
self.sort(node,x,y)
def sort(self,node,x,y):
if node.getLeft() != None:
self.malen(node.getLeft(),x,y)
self.sort(node.getLeft(),x,y)
if node.getRight() != None:
self.malen(node.getRight(),x,y)
self.sort(node.getRight(),x,y)
def malen(self,node,x,y):
print(node.getValue())
start()
sein. Aber statt dessen kommen nur sehr viele 1en und am Ende den Fehler, dass es zu viele Rekursionen gab.1
2
6
5
7
8
3
4
Der Code ist ursprünglich in Java geschrieben. Dort funktioniert er.
Ich habe nun versucht in in Python zu schreiben aber anscheinend ist irgendetwas schiefgelaufen.
Weiß jemand woran das liegen könnte?