Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Insertar Dato en un lista por el final

Estas en el tema de Insertar Dato en un lista por el final en el foro de C/C++ en Foros del Web. Hola a todos , espero que alguien me pueda ayudar y hacerme ver la luz. Estoy empezando a ver listas simples enlazadas en C, tengo ...
  #1 (permalink)  
Antiguo 24/05/2010, 12:41
 
Fecha de Ingreso: febrero-2009
Mensajes: 147
Antigüedad: 15 años, 2 meses
Puntos: 1
Pregunta Insertar Dato en un lista por el final

Hola a todos , espero que alguien me pueda ayudar y hacerme ver la luz.
Estoy empezando a ver listas simples enlazadas en C, tengo el siguiente codigo
Código C:
Ver original
  1. struct nodo
  2. {
  3.     int numero;
  4.    struct nodo*sig;
  5. };
  6. struct nodo *CrearLista()
  7. {
  8.     struct nodo *p;
  9.     p = (struct nodo*) malloc(sizeof(struct nodo));
  10.    return p;
  11. }
  12. void InsertarFinal(struct nodo **lista)
  13. {
  14.     struct nodo *aux,*aux2;
  15.    int n,i=0;
  16.    aux=CrearLista();
  17.    aux2=*lista;
  18.    printf("Introduce un numero\n");
  19.    scanf("%d",&n);
  20.  
  21.     if(aux!=NULL)
  22.     {
  23.     if(aux2==NULL)
  24.     {
  25.         aux -> numero=n;
  26.         aux ->sig=*lista;
  27.         *lista=aux;
  28.     }
  29.     else
  30.     {
  31.             aux -> numero=n;
  32.                 while(aux2->sig!=NULL)
  33.             {
  34.                     aux2=aux2->sig;
  35.                     aux2->sig=aux;
  36.                     aux->sig=NULL;
  37.  
  38.             }
  39.             aux2=aux;
  40.  
  41.  
  42.  
  43.     }
  44.    }
  45.    else
  46.    {
  47.     printf("Espacio Insuficiente\n");
  48.    }
  49. }

Me podeis decir que ago mal o como puedo inserta datos por el final de una lista, si me podeis poner un ejemple se lo agradeceria enormemente.
Un cordial saludo a todos espero su respuesta
  #2 (permalink)  
Antiguo 27/05/2010, 12:30
 
Fecha de Ingreso: enero-2010
Mensajes: 21
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Insertar Dato en un lista por el final

Código C++:
Ver original
  1. void InsertarFinal(int elem, TNodo *Lista)
  2. {
  3.      TNodo *nuevo, *aux = Lista;
  4.  
  5.      nuevo = new TNodo;
  6.      nuevo->dato = elem;
  7.      nuevo->sig = NULL;
  8.  
  9.      if(aux == NULL)
  10.      {
  11.                Lista = nuevo;
  12.      }
  13.      else
  14.      {
  15.                while(aux->sig != NULL)
  16.                {
  17.                          aux = aux->sig;
  18.                }
  19.                aux->sig = nuevo;
  20.      }
  21. }

El código que he escrito recibe como parámetros un elemento y el puntero inicial de la lista enlazada y añade ese elemento al final de la lista. Para ello hay que crear un nuevo nodo y actuar de dos formas, si está vacía se añade tal cual y si contiene elementos, se recorre con un puntero auxiliar hasta llegar al final y se añade.

Un saludo.

Etiquetas: dato, final, lista
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:22.