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);
- int buscaMenor(Pila *dada);
- void ordenarANuevaPila(Pila *dada, Pila *ordenada);
- void insertarElemento(Pila *enOrden, int elemAInsertar);
- int main()
- {
- Pila dada, ordenada;
- inicpila(&dada);
- inicpila(&ordenada);
- int menor = 0;
- int insertar = 0;
- cargarPila(&dada);
- ordenarANuevaPila(&dada, &ordenada);
- printf("Que elemento desea insertar? >> ");
- scanf("%i", &insertar);
- insertarElemento(&ordenada, insertar);
- }
- 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');
- }
- 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));
- }
- while(!pilavacia(&aux))
- {
- apilar(dada, desapilar(&aux));
- }
- return tope(&menor);
- }
- void ordenarANuevaPila(Pila *dada, Pila *ordenada)
- {
- Pila aux;
- inicpila(&aux);
- while(!pilavacia(dada))
- {
- apilar(ordenada, buscaMenor(dada));
- }
- }
- void insertarElemento(Pila *enOrden, int elemAInsertar)
- {
- Pila aux;
- inicpila(&aux);
- while(!pilavacia(enOrden) && tope(enOrden) > elemAInsertar )
- apilar(&aux, desapilar(enOrden));
- apilar(enOrden, elemAInsertar);
- while(!pilavacia(&aux))
- apilar(enOrden, desapilar(&aux));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement