tengo un problema con eliminar no se si alguien me puede ayudar.. ahi les pongo
mi ejercicio solo falta el eliminar nada mas
#include<iostream.h>
#include<ctype.h>
#include<conio.h>
struct nodo
{ int dato;
nodo*sig;
};
void main ()
{
nodo *cab, *nuevo, *p;
cab=NULL;
char op;
int existe,numero;
do
{
clrscr ();
cout<<"PROCESOS CON LISTAS"<<endl;
cout<<"1.-Ingresar datos a la lista"<<endl;
cout<<"2.-Recorrer la Lista "<<endl;
cout<<"3.-Buscar en la Lista "<<endl;
cout<<"4.-Eliminar en la Lista "<<endl;
cout<<"5.-Salir "<<endl;
cout<<"Ingrese la opcion:"<<endl;
op=getch();
switch (op)
{
case '1':
nuevo=new nodo;
cout<<"Ingrese el n—mero:";
cin>>nuevo->dato;
nuevo->sig=NULL;
if (cab==NULL){cab=nuevo;}
else{
p=cab;
while (p->sig!=NULL)
p=p->sig;
p->sig=nuevo;
}
break;
case '2' :
p=cab;
if (cab==NULL)
cout<<"La lista esta vacia";
else{
do{
cout<<p->dato<<endl;
p=p->sig;
}while (p->sig!=NULL);
cout<<p->dato<<endl;
}
getch ();
break;
case '3' :
p=cab;
cout<<"Ingrese el numero a buscar:";
cin>>numero;
existe=0;
do
{
if(numero==p->dato)
existe=1;
p=p->sig;
}while (p->sig!=NULL);
if(existe==1)
cout<<"NUMERO SI EXISTE EN LA LISTA"<<endl;
else
cout<<"***NO EXISTE EN LA LISTA ****"<<endl;
getch();
case '4' :
p=cab;
cout<<"Ingrese el numero a eliminar:";
cin>>numero;
existe=0;
do
{
if(numero==p->dato)
existe=1;
p=p->sig;
delete p;
}while (p->sig!=NULL);
if(existe==1)
cout<<"NUMERO ELIMINADO DE LA LISTA"<<endl;
else
cout<<"***NO EXISTE EN LA LISTA ****"<<endl;
getch();
}
}while (op!='5');
}