Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - DGP

#1
Aca esta el codigo pero no logro fusionar las pilas quien me ayudaria a ver cual es mi error aqui


Código (cpp) [Seleccionar]
/*Se tiene dos pilas (stacks) que contienen números enteros, elabore un programa que fusione
ambas pilas en una Tercera y muestre el promedio de la tercera  pila. Ademas cargue una  cola  
donde determine el promedio de los datos de ésta Utilice un menú donde especifique  
cada acción (cargar, mostrar, fusión y promedio) */

#include<iostream>
#include<stdlib.h>

using namespace std;

struct Nodo{
int dato;
Nodo *sig;
};

void Pilas_1(Nodo *&, int);
void Pilas_2(Nodo *&, int);
void MostrarPila_1(Nodo *&);
void MostrarPila_2(Nodo *&);
void FusionarPilas(Nodo *&, Nodo*&);

int main(){

Nodo *pila = NULL;
Nodo *p1 = NULL;
Nodo *p2 = NULL;

int opc = 0, n, i=0, datos;

do{
cout<<"\tMenu"<<endl;
   cout<<"1. Agregar datos"<<endl;
cout<<"2. Mostrar datos"<<endl;
cout<<"3. Fusionar datos "<<endl;
cout<<"4. Promedio de los datos"<<endl;
cout<<"5. Salir"<<endl;
cout<<"\n Escriba un numero de la lista: ";
cin>>opc;

switch(opc){

case 1: cout<<"\nPilas a agregar: "; cin>>n;
cout<<"\nDatos de la pila 1"<<endl;
for(i=0;i<n;i++){
   cout<<"\nAgregue un numero: "; cin>>datos;
   Pilas_1(p1,datos);
   }
   
   cout<<"\nDatos de la pila 2"<<endl;
for(i=0;i<n;i++){
   cout<<"\nAgregue un numero: "; cin>>datos;
   Pilas_1(p2,datos);
   }
   
   system("pause");
break;


case 2: cout<<"\nLos datos agregados en la pila 1 son: "<<endl;
       MostrarPila_1(p1);
cout<<"\nLos datos agregados en la pila 2 son: "<<endl;
       MostrarPila_2(p2);
system("pause");
    break;
   
case 3: cout<<"\nLa pila 1 con la pila 2"<<endl;
      FusionarPilas(p1,p2);
      system("pause");
    break;

}
  system("cls");
}
while(opc != 5);

return 0;
}

void Pilas_1(Nodo *&pila, int n){

Nodo *nuevo_nodo = new Nodo();
nuevo_nodo->dato = n;
nuevo_nodo->sig = pila;
pila = nuevo_nodo;

cout<<"\nDatos agregados correctamente"<<endl;

}


void MostrarPila_1(Nodo *&p1){

while(p1 != NULL){
           cout<<p1->dato<<endl;
           p1 = p1->sig;
    }    
}

void MostrarPila_2(Nodo *&p2){

while(p2 !=NULL){
           cout<<p2->dato<<endl;
           p2 = p2->sig;
    }    
}

void FusionarPilas(Nodo *&p1, Nodo *&p2){

   Nodo *aux = new Nodo();

aux = p1;

       while(aux != NULL){
       aux = aux->sig;
       aux->sig = pila;
   }
}


MOD: Titulo modificado a algo descriptivo