hola amigos....es que necesito ayuda para resolver este codigo en c++...estare muy agradecido por su colaboracion al que me pueda ayudar......"es que es un parcial" y no he podido por ningun lado....aunque el profe dice que es sencillo.....*/*/*/*
este es el codigo..=====
# include <iostream.h>
# include <conio.h>
#include <stdio.h>
typedef struct NODO NODO;
struct NODO
{
int info;
NODO *sig;
};
//******************************************
class LISTA
{
NODO*cab;
public:
LISTA()
{
cab=NULL;
}
int ins_lista(int n);
int retira_lista(int n);
void listar_lista();
void insertar(NODO*,NODO*,int);
~LISTA();
}
//******************************************
{
void LISTA::insertar(NODO*p,NODO*q,int n)
{
NODO*nuevo;
nuevo=new NODO;
nuevo->info=n;
nuevo->sig=q;
if(p!=NULL)
p->sig=nuevo;
else cab=nuevo;
}
}
//*******************************************
int LISTA::ins_lista(int n)
{
NODO*p,*q;
p=NULL;
q=cab;
int encontro=0;
while(q!=NULL&&! encontro)
if(n>q->info)
{
p=q;
q=q->sig;
}
else encontro=1;
if(encontro)
if(n==q->info)
return(-1);//repetido
else insertar(p,q,n);
return 0;
}
//*******************************************
int LISTA::retira_lista(int n)
{
NODO*p,*q ;
p=NULL;
q=cab;
int encontro=0;
while(q!=NULL&&!encontro)
if(n>q->info)
{
p=q;
q=q->sig;
}
else encontro=1;
if(encontro==1&&n==q->info)
{
if(p==NULL)
cab=q->sig;
else p->sig=q->sig;
delete q;
return 0;
}
return -1;
}
//*******************************************
void LISTA::listar_lista()
{
NODO *p=cab;
while(p!=NULL)
{
cout<<p->info<<endl;
p=p->sig;
}
}
//*******************************************
LISTA::~LISTA()
{
NODO*p;
if(cab==NULL);
else
{
p=cab;
while(cab!=NULL)
{
cab=cab->sig;
delete p;
cout<<"destruido nodo..."<<endl;
p=cab;
}
}
}
//********************************************
main()
{
LISTA lista1;
int i;
lista1.f(int i);
cout<<"de numero(para fin de 999)..."<<endl;
cin>>i;
while(i!=999)
{
if(lista1.ins_lista(i)==-1)
cout<<"repetido..."<<endl;
cout<<"de numero (para fin de 999)...."<<endl;
cin>>i;
}
lista1.listar_lista();
cout<<"de numero a retirar(para fin de 999)..."<<endl;
cin>>i;
while (!=999)
{
if (lista1.retira_lista(i)==-1)
cout<<"No existe"<<endl;
cout<< "de numero a retirar(para fin de 999)..."<<endl;
cin>>i;
}
lista1.listar_lista();
}