Ver Mensaje Individual
  #8 (permalink)  
Antiguo 22/09/2008, 14:55
andres12
 
Fecha de Ingreso: septiembre-2008
Mensajes: 2
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Pregunta sobre C++

hola amigos.....necesito de sus conocimientos......elcodigo es de listas..y al parecer es muy sencillo.....pero no he podido dar con el chiste....ayudenme...a solucionarlo.......es un parcial--....
gracias de antemano...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;
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();
}