Ir al contenido principal

Programación en c++: Pilas - apilar, desapilar, eliminar y unir pila





#include<iostream.h>
#include<conio.h>

struct nodo{ int nro;
         struct nodo * sgte;};

typedef nodo *ptrPila;

void imprimir1(ptrPila);
void imprimir2(ptrPila);
void eliminaPila(ptrPila &);
void push(ptrPila &, int);
void unirPilas(ptrPila , ptrPila );
int pop(ptrPila &);

void main(void)
{ ptrPila p1=NULL;
  ptrPila p2=NULL;
  ptrPila p=NULL;
int opc,n,valor,i;
do{
 cout<<"1 Apilar"<<endl;
 cout<<"2 Desapilar"<<endl;
 cout<<"3 Ver pila"<<endl;
 cout<<"4 Eliminar Pila"<<endl;
   cout<<"5 Unir"<<endl;
 cout<<"6 Salir"<<endl;
 cout<<"Ingrese una opcion";
 cin>>opc;
 switch(opc)
 {case 1:cout<<"limite de la pila"; cin>>n;
           cout<<"Ingresar pila 1"<<endl;
           for(i=0;i<n;i++)
           {cout<<"Elemento:"<<endl;
            cin>>valor;
      push(p1,valor);
            }
            cout<<"Ingresar pila 2"<<endl;
           for(i=0;i<n;i++)
           {cout<<"Elemento:"<<endl;
            cin>>valor;
      push(p2,valor);
            }
   break;
  case 2: if(p!=NULL)
   { cout<<"Valor Eliminado";
     n=pop(p);
     cout<<n<<endl;
   }
   else  cout<<"Pila vacia"<<endl;
   break;
 case 3:cout<<"Contenido de la pila 1"<<endl;
   imprimir1(p1);
         cout<<"Contenido de la pila 2"<<endl;
   imprimir1(p2);
   break;
 case 4:eliminaPila(p);
   cout<<"Pila destruida"<<endl;
   break;
   case 5:
           cout<<"Pilas unidas"<<endl;
           unirPilas(p1,p2);
           break;
 }
}while(opc!=6);
}
//Función para insertar elementos en la pila
void push(ptrPila &p, int n)
{ ptrPila q=new(struct nodo);
  q->nro=n;
  q->sgte=p;
  p=q;
}
//Función para eliminar elementos en la pila
int pop(ptrPila &p)
{ int n=p->nro;
  ptrPila q=p;
  p=p->sgte;
  delete (q);
  return n;
}
//Función para eliminar la pila
void eliminaPila(ptrPila &p)
{ ptrPila q;
  while(p!=NULL)
  {q=p;
   p=p->sgte;
   delete(q);
  }
}
void unirPilas(ptrPila p1, ptrPila p2)
{
  ptrPila q=p1;
  while(q->sgte!=NULL)
  q=q->sgte;
  q->sgte=p2;
}
//Función para visualizar elementos en la pila
void imprimir(ptrPila p1)
{ while(p1!=NULL)
 {cout<<p1->nro<<endl;
  p1=p1->sgte;
 }
cout<<endl;
}
void imprimir1(ptrPila p1)
{ while(p1!=NULL)
 {cout<<p1->nro<<endl;
  p1=p1->sgte;
 }
cout<<endl;
}
void imprimir2(ptrPila p2)
{ while(p2!=NULL)
 {cout<<p2->nro<<endl;
  p2=p2->sgte;
 }
cout<<endl;
}

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