static void VaciarPila(PilaDoble arreglo, int numPila) { string datoLeido; bool pilaVacia; do { if (numPila == 1) { datoLeido = arreglo.Pop1(); } else if (numPila == 2) { datoLeido = arreglo.Pop2(); } else { throw new Exception("Sólo se admite pila #1 o pila #2 en numPila"); } pilaVacia = datoLeido == null; if (!pilaVacia) { Console.WriteLine(datoLeido); } } while (!pilaVacia); }
public static void Mostrar() { int TAM_ARR_IMPAR, TAM_ARR_PAR; PilaDoble arrPar, arrImpar; // Decidiendo el tamaño de los arreglos de pila Console.Clear(); Console.WriteLine("Dame el tamaño del arreglo PAR:"); TAM_ARR_PAR = Int32.Parse(Console.ReadLine()); Console.WriteLine("Dame el tamaño del arreglo IMPAR:"); TAM_ARR_IMPAR = Int32.Parse(Console.ReadLine()); arrPar = new PilaDoble(TAM_ARR_PAR); arrImpar = new PilaDoble(TAM_ARR_IMPAR); // Manejo de un arreglo con tamaño PAR Console.WriteLine("Provee datos para la pila 1 (arreglo par)"); LlenarPila(arrPar, TAM_ARR_PAR / 2, 1); Console.WriteLine("\nProvee datos para la pila 2 (arreglo par)"); LlenarPila(arrPar, TAM_ARR_PAR / 2, 2); Console.WriteLine("\nÉstos son los contenidos de la pila 1 (par):"); VaciarPila(arrPar, 1); Console.WriteLine("\nÉstos son los contenidos de la pila 2 (par):"); VaciarPila(arrPar, 2); // Manejo de un arreglo con tamaño IMPAR Console.WriteLine("\n----------------------------------------------"); Console.WriteLine("\nProvee datos para la pila 1 (arreglo impar)"); LlenarPila(arrImpar, TAM_ARR_IMPAR / 2, 1); Console.WriteLine("\nProvee datos para la pila 2 (arreglo impar)"); LlenarPila(arrImpar, (TAM_ARR_IMPAR / 2) + 1, 2); Console.WriteLine("\nÉstos son los contenidos de la pila 1 (impar):"); VaciarPila(arrImpar, 1); Console.WriteLine("\nÉstos son los contenidos de la pila 2 (impar):"); VaciarPila(arrImpar, 2); Console.WriteLine("\nPRESIONE CUALQUIER TECLA PARA VOLVER AL MENÚ..."); Console.ReadKey(); }
static void LlenarPila(PilaDoble arreglo, int numDatos, int numPila) { string nuevoDato; for (int i = 0; i < numDatos + 1; i++) { nuevoDato = Console.ReadLine(); if (numPila == 1) { arreglo.Push1(nuevoDato); } else if (numPila == 2) { arreglo.Push2(nuevoDato); } else { throw new Exception("Sólo se admite pila #1 o pila #2 en numPila"); } } }