Advertisement
nahuelbkn

buscaMenor?

Jun 27th, 2019
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.09 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "pila.h"
  4.  
  5. void cargarPila(Pila *aCargar);
  6. void pasarPila(Pila *origen, Pila *destino);
  7. void pasarPilaEnOrden(Pila *origen, Pila *destino);
  8. int buscaMenor(Pila *dada);
  9. void ordenarANuevaPila(Pila *dada, Pila *ordenada);
  10.  
  11. int main()
  12. {
  13.     Pila dada, secundaria, ordenada;
  14.     inicpila(&dada);
  15.     inicpila(&secundaria);
  16.     inicpila(&ordenada);
  17.  
  18.     int menor = 0;
  19.  
  20.     cargarPila(&dada);
  21.  
  22.     mostrar(&dada);
  23.     printf("PILA: Dada.\n\n");
  24.  
  25.     ///pasarPila(&dada, &secundaria);
  26.  
  27.     ///pasarPilaEnOrden(&dada, &secundaria);
  28.     ///mostrar(&dada);
  29.     ///printf("PILA: Dada.\n\n");
  30.     ///mostrar(&secundaria);
  31.     ///printf("PILA: Secundaria.\n\n");
  32.  
  33.     ///menor = buscaMenor(&dada);
  34.     ///printf("El menor elemento ingresado es: %i\n\n", menor);
  35.  
  36.     ordenarANuevaPila(&dada, &ordenada);
  37.     mostrar(&ordenada);
  38.     printf("PILA: Ordenada.\n\n");
  39.  
  40.  
  41.     return 0;
  42. }
  43.  
  44. void cargarPila(Pila *aCargar)
  45. {
  46.     char control;
  47.  
  48.     do
  49.     {
  50.         leer(aCargar);
  51.  
  52.         printf("\n\nDesea seguir cargando la pila? (S/N)..:");
  53.         fflush(stdin);
  54.         scanf("%c", &control);
  55.         control = toupper(control);
  56.     }while(control == 'S');
  57. }
  58.  
  59. void pasarPila(Pila *origen, Pila *destino)
  60. {
  61.     while(!pilavacia(origen))
  62.         apilar(destino, desapilar(origen));
  63. }
  64.  
  65. void pasarPilaEnOrden(Pila *origen, Pila *destino)
  66. {
  67.     Pila aux;
  68.     inicpila(&aux);
  69.  
  70.     pasarPila(origen, &aux);
  71.     pasarPila(&aux, destino);
  72. }
  73.  
  74. int buscaMenor(Pila *dada)
  75. {
  76.     Pila aux, menor;
  77.     inicpila(&aux);
  78.     inicpila(&menor);
  79.  
  80.     apilar(&menor, desapilar(dada));
  81.  
  82.     while(!pilavacia(dada))
  83.     {
  84.         if(tope(&menor) > tope(dada))
  85.         {
  86.             apilar(&aux, desapilar(&menor));
  87.             apilar(&menor, desapilar(dada));
  88.         }
  89.         else
  90.             apilar(&aux, desapilar(dada));
  91.     }
  92.  
  93.     return tope(&menor);
  94. }
  95.  
  96. void ordenarANuevaPila(Pila *dada, Pila *ordenada)
  97. {
  98.     Pila aux;
  99.     inicpila(&aux);
  100.  
  101.     while(!pilavacia(dada))
  102.     {
  103.         apilar(ordenada, buscaMenor(dada));
  104.     }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement