C/Visual C - problema con nodo....

 
Vista:

problema con nodo....

Publicado por her (1 intervención) el 03/03/2012 13:45:46
hola tengo problemas con eliminar un nodo. no se si alguien me podria ayudar en eso corrigiendom los errores para eliminar, alguna linea de codigo que me falte o que este demas. agradezco su ayuda. demen corrigiendo si...

#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');
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder