Advertisement
gmmmarcos

Practico 3 - Funciones - Ejercicio 5

Apr 16th, 2019
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "pila.h"
  4.  
  5. int main()
  6. {
  7.  
  8. Pila DADA, PATATA;
  9. inicpila(&DADA);
  10. inicpila (&PATATA);
  11.  
  12. CargarPila (&DADA);
  13. OrdenarPila (&DADA, &PATATA);
  14.  
  15. printf("\n\t PILA PATATA\n");
  16. mostrar (&PATATA);
  17.  
  18. return 0;
  19. }
  20.  
  21.  
  22.  
  23. void CargarPila (Pila* a)
  24. {
  25.  
  26. char OP='s';
  27. while (OP=='s')
  28. {
  29. // para ponerle nombre a la pila en el printf necesito strings //
  30. printf("INGRESE UN VALOR A LA PILA\n");
  31. leer (a);
  32. printf("\n DESEA INGRESAR OTRO? s/n\n");
  33. fflush(stdin);
  34. scanf("%c",&OP);
  35. }
  36. }
  37.  
  38.  
  39.  
  40. void PasarElementosIgual (Pila* a, Pila* b)
  41. {
  42. Pila TEMP;
  43. inicpila (&TEMP);
  44.  
  45. while (!pilavacia(a))
  46. {
  47. apilar (&TEMP, desapilar (a));
  48. }
  49.  
  50. while (!pilavacia(&TEMP))
  51. {
  52. apilar (b, desapilar (&TEMP));
  53. }
  54. }
  55.  
  56.  
  57.  
  58.  
  59. void PasarElementos (Pila* a, Pila* b)
  60. {
  61. while (!pilavacia(a))
  62. {
  63. apilar (b, desapilar (a));
  64. }
  65. }
  66.  
  67.  
  68.  
  69.  
  70. void BuscarMenor (Pila* DADA)
  71. {
  72. Pila MENOR, AUXDADA;
  73. inicpila(&MENOR);
  74. inicpila(&AUXDADA);
  75.  
  76. apilar (&MENOR, desapilar (DADA));
  77.  
  78. while (!pilavacia(DADA))
  79. {
  80. if (tope(DADA)< tope(&MENOR))
  81. {
  82. apilar (&AUXDADA, desapilar (&MENOR));
  83. apilar (&MENOR, desapilar(DADA));
  84. }
  85. else
  86. {
  87. apilar (&AUXDADA, desapilar (DADA));
  88. }
  89. }
  90.  
  91. while (!pilavacia(&AUXDADA))
  92. {
  93. apilar (DADA, desapilar (&AUXDADA));
  94. }
  95.  
  96. printf("\n EL MENOR ES: \n");
  97. mostrar (&MENOR);
  98.  
  99. }
  100.  
  101.  
  102.  
  103.  
  104. void OrdenarPila (Pila *DADA, Pila *MENOR)
  105. {
  106. Pila AUXDADA;
  107. inicpila (&AUXDADA);
  108.  
  109. do {
  110. apilar (MENOR, desapilar (DADA));
  111.  
  112. while (!pilavacia(DADA))
  113. {
  114. if (tope(DADA)< tope(MENOR))
  115. {
  116. apilar (&AUXDADA, desapilar (MENOR));
  117. apilar (MENOR, desapilar(DADA));
  118. }
  119. else
  120. {
  121. apilar (&AUXDADA, desapilar (DADA));
  122. }
  123. }
  124.  
  125. while (!pilavacia(&AUXDADA))
  126. {
  127. apilar (DADA, desapilar (&AUXDADA));
  128. }
  129.  
  130.  
  131. }while (!pilavacia(DADA));
  132.  
  133. }
  134.  
  135. /* 5. Hacer una función que pase los elementos de una pila a otra,
  136. de manera que se genere una nueva pila ordenada. Usar la función del ejercicio 4. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement