C++-Programmierung - Importieren und Zusammenführen von Listen

verknüpfte Listen

Listen einfügen und zusammenführen

Mithilfe der verknüpften Listen erstellen wir ein Menü, mit dem die importierten Listenelemente importiert, zugeordnet und dann angezeigt werden können.

Das Menü enthält 6 Optionen mit den folgenden Funktionen.

Unser Programm muss die Dateneingabe, das Verknüpfen mit Listen, das Anzeigen von Listenelementen und das Beenden des Programms ermöglichen. Um in das Programm einzutreten, müssen Sie den Benutzer bitten, die Nummer der Option einzugeben, die er lernen möchte.

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#define lim 100
struct nodo{
             int nro;
             struct nodo*sgte;
             };
typedef struct nodo*Tlista;
void insertar(Tlista &, int);
void unir(Tlista &, Tlista&, Tlista&);
void imprimir(Tlista);
void main()
{
 Tlista lista1=NULL;
 Tlista lista2=NULL;
 Tlista lista3=NULL;
 int opc,valor1,valor2;
 do
 {
  cout<<"1. Insertar "<<endl;
  cout<<"2. Unir"<<endl;
  cout<<"3. ver lista"<<endl;
  cout<<"4. Salir"<<endl;
  cout<<"Ingrese la opcion:";
  cin>>opc;
  switch(opc)
  {
   case 1 :
            cout<<"cantidad de elementos para la lista A:"<<endl;
            cin>>valor1;
            cout<<"Ingrese elementos a la lista:"<<endl;
            insertar(lista1, valor1);
            cout<<"cantidad de Elementos para la Lista B:"<<endl;
            cin>>valor2;
            cout<<"Ingrese elementos a la lista:"<<endl;
            insertar(lista2,valor2);
            break;
   case 2 :
            unir(lista1,lista2,lista3);
            cout<<endl<<"UNION DE LA LISTA A Y B"<<endl;
            imprimir(lista3);
            break;
   case 3: cout<<endl<<"LISTA A"<<endl;
           imprimir(lista1);
           cout<<endl<<"LISTA B"<<endl;
           imprimir(lista2);
           break;
   }
   }while(opc!=4);
   }

void imprimir(Tlista lista1)
 {
 while(lista1!=NULL)
   {cout<<lista1->nro<<endl;
    lista1=lista1->sgte;
   }
   cout<<endl;
 }

 void insertar(Tlista &lista1,int valor1)
 {Tlista t,q;
  int num,i;
  for(i=0;i<valor1;i++)
  {cin>>num;
   q=new(struct nodo);
   q->nro=num;
   q->sgte=NULL;
   if(lista1==NULL)
   lista1=q;
   else
   {
   t=lista1;
   while(t->sgte!=NULL)
   t=t->sgte;
   t->sgte=q;
   }
  }
 }
void unir(Tlista &lista1, Tlista &lista2, Tlista &lista3)
{
Tlista aux,seg,pri,afg;
aux=lista1;
seg=lista2;
pri=new(struct nodo);
pri->nro=aux->nro;
pri->sgte=NULL;
lista3=pri;
aux=aux->sgte;
while(aux!=NULL)
{pri=new(struct nodo);
pri->nro=aux->nro;
pri->sgte=NULL;
afg=lista3;

while(afg->sgte!=NULL)
 afg=afg->sgte;
afg->sgte=pri;
aux=aux->sgte;
}
while(seg!=NULL)
{pri=new(struct nodo);
pri->nro=seg->nro;
pri->sgte=NULL;
afg=lista3;

while(afg->sgte!=NULL)
afg=afg->sgte;
afg->sgte=pri;
seg=seg->sgte;
}
}

Weiter mit den verlinkten Listen kündige ich den folgenden Beitrag an: Löschen und am Anfang eingeben, Suchen und Mittelwertliste