Ir al contenido principal

Programación en c++: Listas enlazadas - insertar, imprimir y unir listas





#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;
}
}












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"<...

Programacion: Arreglos con estructuras - ordenamientos

1.- Se pide realizar un ordenamiento de artículos, para ello se debe ingresar n artículos y ordenarlos por su monto de inversión. struct articulo {char codigo[10];  char producto[20];  float preciocompra;  float monto;  int cantidad;  }  #include<iostream.h> #include<string.h> #include<conio.h> #define MAX 50 struct articulo {char codigo[10];  char producto[20];  float preciocompra;  float monto;  int cantidad;  };  void leer(int, struct articulo[]);  void montodeinversion(int, struct articulo[]);  void ordenmonto(int, struct articulo[]);  void listado(int, struct articulo[]);  void main()  {int n;   struct articulo Art[MAX];   cout<<"Cantidad de articulos que desea poner:";   cin>>n;   leer(n,Art);   montodeinversion(n,Art);   ordenmonto(n,Art);   cout<<"productos ordenados por su cantidad de mont...