Ir al contenido principal

Programacion: Listas enlazadas - Programación en c++







1. Hacer un programa que permita ingresar dos listas, el programa debe mostrar las dos listas, intercalar la dos listas en una tercera lista, y debe calcular la resta de ambas listas y el resultado mostrarlo en una tercera lista.

#include <iostream.h>
#include <conio.h>
struct nodo
{
 int nro;
 struct nodo* sgte;
 struct nodo* ante;
};
typedef struct nodo* Tlista;
void insertar(Tlista &,int);
void intercala(Tlista &,Tlista &,Tlista &);
void unir(Tlista &,Tlista &,Tlista &);
void listado(Tlista);
void restar(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]->RESTAR\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<<"\nINSERTE VALOR ["<<(i+1)<<"]";
                      cin>>k;
                      insertar(lista1,k);
                     }
                  cout<<"\nLISTA NUMERO 2";
                  for(i=0;i<n;i++)
                     {
                      cout<<"\nINSERTE VALOR ["<<(i+1)<<"]";
                      cin>>k;
                      insertar(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 RESTADAS";
                  restar(lista1,lista2,lista5);
                  cout<<"\nLISTA 1";
                  listado(lista1);
                  cout<<"\nLISTA 2";
                  listado(lista2);
                  cout<<"\nLISTA RESTADA";
                  listado(lista5);
                  getch();
                  break;
         }
   }while(opc!=0);
}
void insertar(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;
          insertar(lista3,x);
         }
       if(l2!=NULL)
         {
          x=l2->nro;
          insertar(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;
       insertar(lista4,x);
       l1=l1->sgte;
      }
 while(l2!=NULL)
      {
       x=l2->nro;
       insertar(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 restar(Tlista &lista1,Tlista &lista2,Tlista &lista5)
{
 int x,r,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;
         }
         r=x-y;
         incertar(lista5,r);
       l1=l1->sgte;
       l2=l2->sgte;
      }
}

Comentarios

Entradas más populares de este blog

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);         }                                     } ...

Programacion: Arbol binario - Programacion en c++

1.- Hacer un programa que permita buscar un elemento, el elemento mayor, el elemento menor y el menor de los mayores de un árbol binario. #include <iostream.h> #include <conio.h> struct nodo     {      int valor;      struct nodo* izq;      struct nodo* der;     }; typedef struct nodo *ABB; void inserta(ABB& ,int); void preorden(ABB); void postorden(ABB); void enorden(ABB); void verarbol(ABB,int); int buscar(ABB,int); int buscarmayor(ABB); int buscarmenor(ABB); void podar(ABB&,int); void main() { ABB arbol=NULL; ABB subarbol=NULL; int n,x,opc,a;   do     {      cout<<"menu principal"<<endl;      cout<<"1.ingresar elementos"<<endl;      cout<<"2.pre orden"<<endl;      cout<<"3.mostrar hojas"<...

Programación en c++ : While - series: límite del numerador

1.- Hacer un programa que nos permita ingresar el límite del numerador hasta donde queremos que se realice la suma, sólo el numerador tendrá el límite, el denominador no cambiará, por ejemplo; 1/2 , 2/2, 3/2, 4/2 ..... #include<iostream>  #include<conio.h> int main()  {  int num=0,suma=0,denominador=2,limite;  clrscr();  cout<<"Ingrese el limite del numerador: ";  cin>>limite; while (num<=limite)  {  cout<<num<<"/"<<denominador<<endl;  suma=suma+num;  num=num+1; }  cout<<"Suma total: "<<suma<<"/"<<denominador<<endl;  getch();  }