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

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