Dev - C++ - listas c++

   
Vista:

listas c++

Publicado por andres (1 intervención) el 22/09/2008 22:45:22
hola amigos....me urge resolver este codigo...es que le he intentado por todos lados y no me anda ......porfavorayuuuuuuuuuuuuuuuuuuuuuuudenme........

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();
}
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
Hola,

Mira, igual y es mejor que comiences con un codigo sencillo de listas enlazadas, aqui esta:
http://foro_c.forogratis.es/foro/programa-sencillo-de-listas-enlazadas-t573.html
como ese ya jala (pruebalo, no vaya a ser que no), ya solo mete todas las funciones que trabajan con la lista en una clase.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar