De ARBOL binario a LISTA
Publicado por SOS (2 intervenciones) el 26/06/2005 18:20:03
Hola, buenas!
Necesito una pequeña ayuda. Mi problema es que tengo que pasar de un arbol a una lista. Mi trozo de codigo es este:
FUNCTION getLista (x:TAD): tLista;
VAR
lista : tLista;
PROCEDURE arbolAlista (arbol: tArbol; VAR L: tLista);
BEGIN
IF arbol<>NIL THEN BEGIN
new(L);
L^.siguiente := NIL;
copiarRegistro(arbol^.registro, lista^.elemento);
arbolAlista (arbol^.Izq, L^.siguiente);
arbolAlista (arbol^.Der, L^.siguiente)
END
END;
BEGIN (* empieza GetLista *)
lista := NIL;
IF x.elementos <> NIL THEN
arbolAlista (x.elementos, lista);
getLista := lista
END;
Y el problema que me da es que solo me devuelve en la lista la raiz y lo que tiene en su hijo derecho. Los nodos del arbol contienen registros.
Un saludo y muchas gracias
Necesito una pequeña ayuda. Mi problema es que tengo que pasar de un arbol a una lista. Mi trozo de codigo es este:
FUNCTION getLista (x:TAD): tLista;
VAR
lista : tLista;
PROCEDURE arbolAlista (arbol: tArbol; VAR L: tLista);
BEGIN
IF arbol<>NIL THEN BEGIN
new(L);
L^.siguiente := NIL;
copiarRegistro(arbol^.registro, lista^.elemento);
arbolAlista (arbol^.Izq, L^.siguiente);
arbolAlista (arbol^.Der, L^.siguiente)
END
END;
BEGIN (* empieza GetLista *)
lista := NIL;
IF x.elementos <> NIL THEN
arbolAlista (x.elementos, lista);
getLista := lista
END;
Y el problema que me da es que solo me devuelve en la lista la raiz y lo que tiene en su hijo derecho. Los nodos del arbol contienen registros.
Un saludo y muchas gracias
Valora esta pregunta


0