//Muestra del funcionamiento de las listas enlazadas
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
void insertar(int n);
int borrar(int p);
void mostrar();
struct Tnodo
{ int n;//Informaci¢n del nodo
Tnodo *sig;//Apunta al siguiente nodo
} *ini, *fin; //Inicio y fin de la lista
int main()
{ clrscr();
insertar(6);
insertar(3);
insertar(9);
borrar(3);
mostrar();
return 0;
}
void insertar(int n)
{ Tnodo *aux=new Tnodo;
if(aux!=NULL)
{ //Guarda el valor en el nodo
aux->n=n;
//Si no hay elementos (Est vac¡a)
if(ini==NULL)
{ //El inicio es el nuevo nodo
ini=aux;
}
else//Mete al final, el nuevo nodo
fin->sig=aux;
//Ahora el fin, es el que se acaba de insertar
fin=aux;
//Despues del fin, apunta a nulo
fin->sig=NULL;
}
}
int borrar(int valor)
{ Tnodo *actual;
//Lo busca en la primera posicion
if(ini->n == valor)
{ ini=ini->sig;//Inicio es otro
return valor;//Regresa el valor
}
//BUSCA EL VALOR PARA BORRARLO
actual=ini;
//Mientras el siguiente no sea el valor buscado
// y no se haya llegado al fin de la lista
while(actual->sig->n!=valor && actual!=NULL)
actual=actual->sig;
//Si encontr¢ el valor buscado
if(actual!=NULL)
{ //Enlaza el actual con el siguiente del valor encontrado
actual->sig=actual->sig->sig;
return valor;
}
else//No lo encontr¢
return -1;
}
void mostrar()
{ Tnodo *actual = ini;
cout << "Los elementos ingresados son: " << endl;
while(actual!=NULL)
{ cout << actual->n <<" ";
actual=actual->sig;
}
}