Python - lista con el preorden de un arbol de manera recursiva

 
Vista:
sin imagen de perfil
Val: 4
Ha disminuido su posición en 20 puestos en Python (en relación al último mes)
Gráfica de Python

lista con el preorden de un arbol de manera recursiva

Publicado por Alexander (4 intervenciones) el 30/11/2019 22:04:45
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
arbol1=[2,[7,[2,[],[]],[6,[5,[],[]],[11,[],[]]]],[5,[],[9,[4,[],[]],[]]]]
arbol2=[8,[3,[1,[],[]],[6,[4,[],[]],[7,[],[]]]],[10,[],[14,[13,[],[]],[]]]]
def raizArbin(a):
    return a[0]
def izqArbin(a):
    return a[1]
def derArbin(a):
    return a[2]
def vacioArbin(a):
    return a == []
def preordenLista(arbin,lista=[]):
    if not vacioArbin(arbin):
        x=raizArbin(arbin)
        lista.append(x)
        preordenLista(izqArbin(arbin))
        preordenLista(derArbin(arbin))
    return lista
def preordenLista2(arbin,lista=[]):
    if not vacioArbin(arbin):
        x=raizArbin(arbin)
        lista.append(x)
        preordenLista(izqArbin(arbin))
        preordenLista(derArbin(arbin))
    return lista
lista1=preordenLista(arbol1)
print lista1
lista2=preordenLista(arbol2)
print lista2


Tengo el siguiente codigo que en teoria deberia mostrar una lista con el preorden de los arboles 1 y 2 pero al ejecutar una vez todo va normal y me muestra la lista [2, 7, 2, 6, 5, 11, 5, 9, 4] que es el preorden del primer arbol pero al mandar a la funcion el arbol2 me muestra [2, 7, 2, 6, 5, 11, 5, 9, 4, 8, 3, 1, 6, 4, 7, 10, 14, 13], no se por que se agrgan los del arbol 1 al arbol 2
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

lista con el preorden de un arbol de manera recursiva

Publicado por joel (901 intervenciones) el 01/12/2019 19:40:07
Hola Alexander, te has fijado que las dos veces llamas a la misma función??
Nunca llamas a la función preordenLista2!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar