#include #include /* PROGRAMA: lista_enlazada.cpp DESCRIPCIÓN: Implementación de una lista enlazada AUTOR: Fco. J. H. L. VERSIÓN: 1.0 Fecha Inicio: 26-Agosto-2014 Fecha Actualización: 28-Agosto-2014 */ typedef struct _nodo{ int valor; struct _nodo *siguiente; }tipoNodo; void insertar(tipoNodo **lista,int x); int eliminar(tipoNodo **lista); void insertar_ultimaposicion(tipoNodo **lista,int x); int main(void){ tipoNodo *lista=NULL;//La lista está vacía insertar(&lista,10); insertar(&lista,20); insertar_ultimaposicion(&lista,50); printf("%d ",eliminar(&lista)); printf("%d ",eliminar(&lista)); printf("%d ",eliminar(&lista)); system("pause"); return(0); } void insertar(tipoNodo **lista,int x){ //Crear memoria del nodo nuevo tipoNodo *nodo_nuevo; nodo_nuevo=(tipoNodo *)malloc(sizeof(tipoNodo)); nodo_nuevo->valor=x; if (*lista==NULL){//Lista vacía nodo_nuevo->siguiente=NULL; *lista=nodo_nuevo; } else{ //Programar cuando la lista no está vacía... nodo_nuevo->siguiente=*lista; *lista=nodo_nuevo; } } int eliminar(tipoNodo **lista){ int x_aux; //1 tipoNodo *auxiliar; auxiliar=*lista; //Validar que la lista está vacía if(auxiliar==NULL){ printf("\nLa lista está vacía..."); x_aux=-1; } else{ //2 *lista=(*lista)->siguiente; x_aux=auxiliar->valor; //3 Liberar la memoria free(auxiliar); } return(x_aux); } void insertar_ultimaposicion(tipoNodo **lista,int x){ tipoNodo *ultimo; //Crear memoria del nodo nuevo tipoNodo *nodo_nuevo; nodo_nuevo=(tipoNodo *)malloc(sizeof(tipoNodo)); nodo_nuevo->valor=x; if (*lista==NULL){//Lista vacía nodo_nuevo->siguiente=NULL; *lista=nodo_nuevo; } else{ ultimo=*lista; while(ultimo->siguiente!=NULL){ ultimo=ultimo->siguiente; } nodo_nuevo->siguiente=NULL; ultimo->siguiente=nodo_nuevo; } }