ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Lista doble base de datos


Enviado por   •  9 de Septiembre de 2019  •  Práctica o problema  •  613 Palabras (3 Páginas)  •  102 Visitas

Página 1 de 3

#include<iostream>

using namespace std;

class Nodo

{

private:

int edad,id;

string nom,dir,tel,email;

Nodo*sig,*ant;

public:

Nodo()

{

edad=id=0;

nom=dir=tel=email=" ";

ant=sig=NULL;

}

void lee()

{

cout<<"ID: ";cin>>id;

cout<<"NOMBRE: ";fflush(stdin);getline(cin,nom);

cout<<"DIRECCION: ";fflush(stdin);getline(cin,dir);

cout<<"EMAIL: ";fflush(stdin);getline(cin,email);

cout<<"TELEFONO: ";fflush(stdin);getline(cin,tel);

cout<<"EDAD: ";cin>>edad;

}

int Id()

{

return id;

}

int Edad()

{

return edad;

}

string Nombre()

{

return nom;

}

string Direccion()

{

return dir;

}

string Email()

{

return email;

}

string Telefono()

{

return tel;

}

Nodo *Sig()

{

return sig;

}

Nodo *Ant()

{

return ant;

}

void SigApunta(Nodo *nodo)

{

sig=nodo;

}

void AntApunta(Nodo *nodo)

{

ant=nodo;

}

};

class lista

{

private:

Nodo *inicio1,*inicio2;

public:

lista()

{

inicio1=inicio2=NULL;

}

void inserta_ini_izq() //1er INSERTA

{

Nodo *nuevo=new Nodo;

nuevo->lee();

if(inicio1==NULL && inicio2==NULL)

inicio1=inicio2=nuevo;

else

{

Nodo *nuevo=new Nodo;

nuevo->lee();

if(inicio1==NULL&&inicio2==NULL)

inicio1=inicio2=nuevo;

else

{

nuevo->SigApunta(inicio1);

inicio1->AntApunta(nuevo);

inicio1=nuevo;

}

}

cout<<"\n ***INFORMACION INGRESADA*** \n";

muestra();

system("pause");

}

void inserta_ini_der() //2do INSEERTA

{

Nodo *nuevo=new Nodo;

nuevo->lee();

if(inicio1==NULL&&inicio2==NULL)

inicio1=inicio2=nuevo;

else

{

nuevo->AntApunta(inicio2);

inicio2->SigApunta(nuevo);

inicio2=nuevo;

}

cout<<"\n ***INFORMACION INGRESADA*** \n";

muestra();

system("pause");

}

void inserta_inter_derecha() //3er INSERTA

{

Nodo *nuevo=new Nodo;

nuevo->lee();

if(inicio1==NULL && inicio2==NULL)

inicio1=inicio2=nuevo;

else

{

int num;

cout<<"\nADELANTE DE QUE CONTACTO DESEA INSERTAR LA NUEVA INFORMACION (Digite Id)\?: ";

cin>>num;

Nodo *ind=inicio2;

while(ind->Id()!=num)

ind=ind->Ant();

if(ind==NULL)

cout<<"\nNO ES POSIBLE \n";

else

{

Nodo *ind2=ind->Ant();

ind->AntApunta(nuevo);

nuevo->SigApunta(ind);

nuevo->AntApunta(ind2);

ind2->SigApunta(nuevo);

}

}

cout<<"\nNODO INSERTADO\n";

muestra();

system("pause");

}

void inserta_inter_izq() //4to INSERTA

{

Nodo *nuevo=new Nodo;

nuevo->lee();

if(!inicio1&&!inicio2)

inicio1=inicio2=nuevo;

else

{

int num;

cout<<"\n Adelante de que dato quieres insetar \n";

cin>>num;

Nodo *ind=inicio1;

while(ind->Id()!=num)

ind=ind->Sig();

if(!ind)

cout<<"\n No se encontro el dato \n";

else

{

Nodo *ind2=ind->Sig();

nuevo->SigApunta(ind2);

ind->SigApunta(nuevo);

nuevo->AntApunta(ind);

ind2->AntApunta(nuevo);

}

}

system("pause");

}

void muestra()

{

if(!inicio1||!inicio2)

cout<<"\n***LISTA VACIA***\n";

else

{

Nodo *ind=inicio1;

cout<<"\n***LISTA POR LA DERECHA**\n";

while(ind)

{

cout<<ind->Id()<<"\n";

cout<<ind->Nombre()<<"\n";

cout<<ind->Edad()<<"\n";

cout<<ind->Direccion()<<"\n";

cout<<ind->Telefono()<<"\n";

cout<<ind->Email()<<"\n\n";

ind=ind->Sig();

...

Descargar como (para miembros actualizados) txt (7 Kb) pdf (46 Kb) docx (14 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com