Post by Alberto¿ Alguien me podria pasar un codigo ejemplo de una lista enlazada de
enteros en lenguaje C ?
he visto este codigo
#include <stdio.h>
#include <stdlib.h>
typedef struct tipo_nodo
{
int dato;
struct tipo_nodo *sig;
}nodo;
nodo* NuevoNodo(int x)
{
nodo *a;
a=(nodo *)malloc(sizeof(nodo));
a->dato=x;
a->sig=NULL;
return a;
}
void InsertarFinLista(nodo **cabeza,int dato)
{
nodo *nuevo,*actual;
nuevo=NuevoNodo(dato);
nuevo->sig=NULL;
if (*cabeza==NULL)
*cabeza=nuevo;
else
{
actual=*cabeza;
while (actual->sig!=NULL)
actual=actual->sig;
actual->sig=nuevo;
}
}
void main(void)
{
int d;
nodo *cabeza,*actual;
cabeza=NULL;
InsertarFinLista(&cabeza,5);
InsertarFinLista(&cabeza,7);
InsertarFinLista(&cabeza,2);
actual=cabeza;
printf("Lista= ");
while (actual!=NULL)
{
printf("%d ",actual->dato);
actual=actual->sig;
}
printf("\n");
}
¿ Por que en la funcion InsertarFinLista hay que definir cabeza como
nodo** cabeza y no como nodo *cabeza ???
He probado a poner nodo *cabeza y la lista queda vacia