Rekursive Suchbäume iterativ umwandel
Verfasst: Samstag 23. April 2022, 17:07
Guten Tag,
mein Kollege und ich sind neu in der Programmierung und als Aufgabe haben wir uns einen Suchbaum aus dem Internet genommen und diesen wollen wir iterativ schreiben.
Der Code:
Dabei wollen wir uns auf def elem und def add beziehen.
Wie würdet ihr vorgehen?
Wir haben überlegt mit while oder for in schleifen zu Arbeiten.
Vielen dank im Vorraus
mein Kollege und ich sind neu in der Programmierung und als Aufgabe haben wir uns einen Suchbaum aus dem Internet genommen und diesen wollen wir iterativ schreiben.
Der Code:
Code: Alles auswählen
def node(l,v,r) :
return [l,v,r]
def empty() :
return []
def left(l) :
return l[0]
def right(l) :
return l[2]
def value(l) :
return l[1]
def is_empty(t) :
return t == []
def empty_to_node(t,v) :
if is_empty(t) :
t.extend([empty(),v,empty()])
def empty_st() :
return empty()
def elem(v,t) :
if is_empty(t) :
return False
elif v < value(t) :
return elem(v,left(t))
elif v > value(t) :
return elem(v,right(t))
else :
return True
def add(v, t) :
if is_empty(t) :
empty_to_node(t,v)
return True # value added successfully
elif v < value(t) :
return add(v,left(t))
elif v > value(t) :
return add(v,right(t))
else :
return False # value already in tree
def empty_search_tree() :
return empty()
test_tree = node(node(empty(),2,empty()),5,node(empty(),7,node(empty(),10,empty())))
print(elem(3,test_tree))
print(add(8,test_tree))
print(test_tree)
for i in range(12) :
print((i,elem(i,test_tree)))
Wie würdet ihr vorgehen?
Wir haben überlegt mit while oder for in schleifen zu Arbeiten.
Vielen dank im Vorraus