Ir al contenido principal

Programación en c++ : Listas doblemente enlazadas - insertar, intercalar, unir, sumar

1.- Hacer un programa que permita insertar, intercalar, unir y sumar dos listas doblemente enlazadas.

#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]->INTERCALAR\n";
    cout<<"[3]->UNIR\n";
    cout<<"[4]->SUMAR\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<<"LAS LISTAS FUERON INTERCALADAS";
                  intercala(lista1,lista2,lista3);
                  cout<<"\nLISTA 1";
                  listado(lista1);
                  cout<<"\nLISTA 2";
                  listado(lista2);
                  cout<<"\nLISTA UNIDA";
                  listado(lista3);
                  getch();
                  break;
           case 3:
                  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;
           case 4:
                  clrscr();
                  cout<<"LA LISTAS FUERON SUMADAS";
                  sumar(lista1,lista2,lista5);
                  cout<<"\nLISTA 1";
                  listado(lista1);
                  cout<<"\nLISTA 2";
                  listado(lista2);
                  cout<<"\nLISTA SUMADA";
                  listado(lista5);
                  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 intercala(Tlista &lista1,Tlista &lista2,Tlista &lista3)
{
 int x;
 Tlista l1,l2;
 l1=lista1;
 l2=lista2;
 while(l1!=NULL && l2!=NULL)
      {if(l1!=NULL)
         {
          x=l1->nro;
          incertar(lista3,x);
         }
       if(l2!=NULL)
         {
          x=l2->nro;
          incertar(lista3,x);
         }
       l1=l1->sgte;
       l2=l2->sgte;
      }
}
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;
      }
}

void sumar(Tlista &lista1,Tlista &lista2,Tlista &lista5)
{
 int x,s,y;
 Tlista l1,l2;
 l1=lista1;
 l2=lista2;
 while(l1!=NULL && l2!=NULL)
      {if(l1!=NULL)
         {
          x=l1->nro;
         }
       if(l2!=NULL)
         {
          y=l2->nro;
         }
         s=x+y;
         incertar(lista5,s);
       l1=l1->sgte;
       l2=l2->sgte;
      }
}

Comentarios

  1. me ayudo muchisimo tu codigo TuT muchisiiiiiiiiiiiiiiiiiiiiiiiiiimas gracias :) que dios te lo recompense

    ResponderBorrar

Publicar un comentario

Entradas más populares de este blog

Programación en c++ : Matriz - Calcular mayor de la matriz

1.- Hacer un programa que permita ingresar n datos de una matriz y calcular el mayor de la matriz. #include<iostream.h> #include<conio.h> #define lim 50 void main() {int i,j,a[lim][lim],fila,col,  may=a[0][0];  clrscr(); do {cout<<"Ingresar limite de la fila:";  cin>>fila; }while(fila<=0); do {cout<<"Ingesar limite de la columna:";  cin>>col; }while(col<=0); gotoxy(10,7); cout<<"Ingresar Elementos de la matriz\n\n"; for(i=0;i<fila;i++) for(j=0;j<col;j++) {cout<<"a["<<i<<"]"<<"["<<j<<"]";  cin>>a[i][j]; } for(i=0;i<fila;i++) for(j=0;j<col;j++) if(a[i][j]>may) may=a[i][j]; clrscr(); gotoxy(10,7); cout<<"Elementos de la matriz\n\n"; for(i=0;i<fila;i++) for(j=0;j<col;j++) {cout<<a[i][j];  cout<<"\n"; } clrscr(); gotoxy(10,20); cout...

Lenguaje de Programacion en Java: Ecuación de primer grado

public class Main {     public static void main(String[] args) {         float x,a,e;                   Scanner teclado = new Scanner(System.in);         System.out.println("Coeficiente de X:");         x=teclado.nextInt();         System.out.println("Término independiente:");         a=teclado.nextInt();         if(a==0)           System.out.println("No es una ecuación de primer grado");           else         {              e=-a/x;              System.out.println("La raíz es=" +e);         }                                     } ...

Programación en Java: Suma de los cuadrados de los primeros números

public class Main {     public static void main(String[] args) {         int n,s;                  Scanner teclado = new Scanner(System.in);         System.out.println("Ingresar cantidad de elementos:");         n=teclado.nextInt();                      s=(n*(n+1)*(2*n+1))/6;                   System.out.println("Suma de los cuadrados de los primeros números=" +s);                   }    }