Unir listas dobles en C++
Listas Dobles
Mediante programación en C++, realizar un programa que permita insertar y unir dos listas doblemente enlazadas. El programa debe tener un menú de tres opciones: Insertar, unir y salir.
#include <iostream.h>
#include <conio.h>
struct nodo
{
int nro;
struct nodo* sgte;
struct nodo* ante;
};
typedef struct nodo* Tlista;
void incertar(Tlista &,int);
void intercala(Tlista &,Tlista &,Tlista &);
void unir(Tlista &,Tlista &,Tlista &);
void listado(Tlista);
void sumar(Tlista &,Tlista &, Tlista &);
void main(void)
{
Tlista lista1,lista2,lista3,lista4,lista5;
lista1=lista2=lista3=lista4=lista5=NULL;
int opc,n,i,k;
do
{clrscr();
cout<<"[1]->INSERTAR NUMEROS\n";
cout<<"[2]->UNIR\n";
cout<<"[0]->SALIR\n";
cout<<"INGRESE OPCION:";
cin>>opc;
switch(opc)
{
case 1:
clrscr();
cout<<"INGRESE LIMITE DE LAS LISTAS";
cin>>n;
cout<<"\nLISTA NUMERO 1";
for(i=0;i<n;i++)
{
cout<<"\nINCERTE VALOR ["<<(i+1)<<"]";
cin>>k;
incertar(lista1,k);
}
cout<<"\nLISTA NUMERO 2";
for(i=0;i<n;i++)
{
cout<<"\nINCERTE VALOR ["<<(i+1)<<"]";
cin>>k;
incertar(lista2,k);
}
break;
case 2:
clrscr();
cout<<"LA LISTAS FUERON UNIDAS";
unir(lista1,lista2,lista4);
cout<<"\nLISTA 1";
listado(lista1);
cout<<"\nLISTA 2";
listado(lista2);
cout<<"\nLISTA UNIDA";
listado(lista4);
getch();
break;
}
}while(opc!=0);
}
void incertar(Tlista &lista,int n)
{
Tlista nu;
nu=new(struct nodo);
nu->nro=n;
if(lista==NULL)
{
lista=nu;
lista->sgte=NULL;
lista->ante=NULL;
}
else
{
nu->sgte=lista;
nu->ante=lista->ante;
lista->ante=nu;
lista=nu;
}
}
void unir(Tlista &lista1,Tlista &lista2,Tlista &lista4)
{
int x;
Tlista l1,l2;
l1=lista1;
l2=lista2;
while(l1!=NULL)
{
x=l1->nro;
incertar(lista4,x);
l1=l1->sgte;
}
while(l2!=NULL)
{
x=l2->nro;
incertar(lista4,x);
l2=l2->sgte;
}
}
void listado(Tlista lista)
{
Tlista p;
p=lista;
while(p!=NULL)
{cout<<"\n";
cout<<p->nro;
p=p->sgte;
}
}
Como se puede ver en las imágenes, el programa unir listas dobles, tiene un menú de 3 opciones:
Al elegir la primera opción del menú, nos saldrá una ventana que nos pedirá ingresar el límite que tendrán las dos listas dobles (Lista número 1 y Lista número 2).
La segunda opción, deberá mostrarnos los elementos insertados en la lista número 1, los elementos de la lista número 2 y mostrar la lista unida con todos los elementos de ambas listas dobles.
Y finalmente la opción salir, que su mismo nombre lo indica, salir de la aplicación.
Y finalmente la opción salir, que nos permitirá salir de la aplicación.
Espero te haya gustado este post, no dudes en compartirlo!!
Continuando con Listas Dobles, les comparto el siguiente post: Multiplica pares, divide impares en listas dobles en C++