Hola, pido ayuda para resolver este codigo y su respetiva solucion
Es un codigo en Python que utiliza el recorrido preorden y se apoya de un metodo llamado siguiente para recorrer el arbol, pero este debe primero que recorrer bi, por favor me ayudan a solucionar
class Nodo:
def __init__(self, li, bi, dato, bd, ld):
self.li = li
self.bi = bi
self.dato = dato
self.bd = bd
self.ld = ld
def preorden(self):
if self is not None:
print(self.retorna_dato())
self.li.preorden()
self.ld.preorden()
self.siguiente().preorden()
def siguiente(self):
s = self.retorna_ld()
if self.retorna_bd() == 1:
while s.retorna_bi() == 1:
s = s.retorna_li()
return s
def asigna_li(self, li):
self.li = li
def retorna_li(self):
return self.li
def asigna_bi(self, bi):
self.bi = bi
def retorna_bi(self):
return self.bi
def asigna_dato(self, dato):
self.dato = dato
def retorna_dato(self):
return self.dato
def asigna_bd(self, bd):
self.bd = bd
def retorna_bd(self):
return self.bd
def asigna_ld(self, ld):
self.ld = ld
def retorna_ld(self):
return self.ld
nodo_cabeza = Nodo(1, 1, "", 1, 1)
nodo1 = Nodo(0, 0, "Simulando", 0, 0)
nodo2 = Nodo(1, 1, "en", 1, 1)
nodo3 = Nodo(0, 0, "Python", 0, 0)
nodo_cabeza.asigna_li(nodo2)
nodo_cabeza.asigna_ld(nodo_cabeza)
nodo2.asigna_li(nodo1)
nodo2.asigna_ld(nodo3)
nodo1.asigna_li(nodo_cabeza)
nodo1.asigna_ld(nodo2)
nodo3.asigna_li(nodo2)
nodo3.asigna_ld(nodo_cabeza)
nodo_cabeza.preorden()