Aca esta el codigo pero no logro fusionar las pilas quien me ayudaria a ver cual es mi error aqui
MOD: Titulo modificado a algo descriptivo
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