Código
/*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