Ver Mensaje Individual
  #6 (permalink)  
Antiguo 05/11/2011, 00:09
vladimirgude
 
Fecha de Ingreso: septiembre-2011
Mensajes: 16
Antigüedad: 13 años, 2 meses
Puntos: 7
Respuesta: unir listas simplemente enlzadas en una sola

Otro error es que estas recorriendo la lista con el único apuntador al primero de la lista (l1), es decir los elementos anteriores se perderán.

Aqui un código que funciona, saludos...

Código C:
Ver original
  1. lista_t *UnirListas (lista_t *l1, lista_t *l2){
  2.    lista_t *p;
  3.    if (l1 == NULL){  /*Si lista1 esta vacia...*/
  4.       l1 = l2;
  5.    }
  6.    else{
  7.         if (l2 != NULL){  /*Si lista2 no esta vacia...*/
  8.            p = l1;           /*Buscar ultimo nodo (p) de lista1*/
  9.            while (p->sig != NULL)
  10.               p = p->sig;
  11.            /*Ahora, se enlaza lista2 despues de ultimo (p)*/
  12.            p->sig = l2;         /*ultimo (p) apunta a lista2*/
  13.         }
  14.    }
  15.    return l1;     /*retorna lista1*/
  16. }