Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include "pila.h"
- void cargarPila(Pila *aCargar);
- void pasarPila(Pila *origen, Pila *destino);
- void pasarPilaEnOrden(Pila *origen, Pila *destino);
- int buscaMenor(Pila *dada);
- void ordenarANuevaPila(Pila *dada, Pila *ordenada);
- int main()
- {
- Pila dada, secundaria, ordenada;
- inicpila(&dada);
- inicpila(&secundaria);
- inicpila(&ordenada);
- int menor = 0;
- cargarPila(&dada);
- mostrar(&dada);
- printf("PILA: Dada.\n\n");
- ///pasarPila(&dada, &secundaria);
- ///pasarPilaEnOrden(&dada, &secundaria);
- ///mostrar(&dada);
- ///printf("PILA: Dada.\n\n");
- ///mostrar(&secundaria);
- ///printf("PILA: Secundaria.\n\n");
- ///menor = buscaMenor(&dada);
- ///printf("El menor elemento ingresado es: %i\n\n", menor);
- ordenarANuevaPila(&dada, &ordenada);
- mostrar(&ordenada);
- printf("PILA: Ordenada.\n\n");
- return 0;
- }
- void cargarPila(Pila *aCargar)
- {
- char control;
- do
- {
- leer(aCargar);
- printf("\n\nDesea seguir cargando la pila? (S/N)..:");
- fflush(stdin);
- scanf("%c", &control);
- control = toupper(control);
- }while(control == 'S');
- }
- void pasarPila(Pila *origen, Pila *destino)
- {
- while(!pilavacia(origen))
- apilar(destino, desapilar(origen));
- }
- void pasarPilaEnOrden(Pila *origen, Pila *destino)
- {
- Pila aux;
- inicpila(&aux);
- pasarPila(origen, &aux);
- pasarPila(&aux, destino);
- }
- int buscaMenor(Pila *dada)
- {
- Pila aux, menor;
- inicpila(&aux);
- inicpila(&menor);
- apilar(&menor, desapilar(dada));
- while(!pilavacia(dada))
- {
- if(tope(&menor) > tope(dada))
- {
- apilar(&aux, desapilar(&menor));
- apilar(&menor, desapilar(dada));
- }
- else
- apilar(&aux, desapilar(dada));
- }
- return tope(&menor);
- }
- void ordenarANuevaPila(Pila *dada, Pila *ordenada)
- {
- Pila aux;
- inicpila(&aux);
- while(!pilavacia(dada))
- {
- apilar(ordenada, buscaMenor(dada));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement