Binär-Bäume
Verfasst: Dienstag 5. Mai 2020, 20:30
Hallo zusammen,
ich habe ein Programm geschrieben, dass rekursiv einen Binärbaum erstellen soll.(x und y sind im Moment noch irrelevant)
Die eigendliche Ausgabe sollte
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?
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?