Advertisement
gmmmarcos

Practico 3 - Funciones - CON ALGUNAS CORRECCIONES DEL PROFE

Apr 16th, 2019
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 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. AgregarOrden (&DADA, &PATATA);
  15.  
  16. printf("\n\t PILA PATATA\n");
  17. mostrar (&PATATA);
  18.  
  19. return 0;
  20. }
  21.  
  22.  
  23.  
  24. void CargarPila (Pila* a)
  25. {
  26.  
  27. char OP='s';
  28. while (OP=='s')
  29. {
  30. // para ponerle nombre a la pila en el printf necesito strings //
  31. printf("INGRESE UN VALOR A LA PILA\n");
  32. leer (a);
  33. printf("\n DESEA INGRESAR OTRO? s/n\n");
  34. fflush(stdin);
  35. scanf("%c",&OP);
  36. }
  37. }
  38.  
  39.  
  40.  
  41. void PasarElementosIgual (Pila* a, Pila* b)
  42. {
  43. Pila TEMP;
  44. inicpila (&TEMP);
  45.  
  46. while (!pilavacia(a))
  47. {
  48. apilar (&TEMP, desapilar (a));
  49. }
  50.  
  51. while (!pilavacia(&TEMP))
  52. {
  53. apilar (b, desapilar (&TEMP));
  54. }
  55. }
  56.  
  57.  
  58.  
  59.  
  60. void PasarElementos (Pila* a, Pila* b)
  61. {
  62. while (!pilavacia(a))
  63. {
  64. apilar (b, desapilar (a));
  65. }
  66. }
  67.  
  68.  
  69.  
  70.  
  71. int BuscarMenor (Pila* DADA)
  72. {
  73. Pila MENOR, AUXDADA;
  74. inicpila(&MENOR);
  75. inicpila(&AUXDADA);
  76.  
  77. apilar (&MENOR, desapilar (DADA));
  78.  
  79. while (!pilavacia(DADA))
  80. {
  81. if (tope(DADA)< tope(&MENOR))
  82. {
  83. apilar (&AUXDADA, desapilar (&MENOR));
  84. apilar (&MENOR, desapilar(DADA));
  85. }
  86. else
  87. {
  88. apilar (&AUXDADA, desapilar (DADA));
  89. }
  90. }
  91.  
  92. while (!pilavacia(&AUXDADA))
  93. {
  94. apilar (DADA, desapilar (&AUXDADA));
  95. }
  96. return tope(&MENOR);
  97.  
  98. }
  99.  
  100.  
  101.  
  102.  
  103. void OrdenarPila (Pila *DADA, Pila *Ordenada)
  104. {
  105.  
  106. while (!pilavacia (DADA))
  107. {
  108. apilar (Ordenada, BuscarMenor(DADA));
  109. }
  110.  
  111.  
  112. }
  113.  
  114.  
  115. void AgregarOrden (Pila *DADA, Pila *MENOR)
  116. {
  117. Pila AUXDADA;
  118. inicpila (&AUXDADA);
  119. leer (DADA);
  120.  
  121. do
  122. {
  123.  
  124. apilar (MENOR, desapilar (DADA));
  125.  
  126. while (!pilavacia(DADA))
  127. {
  128. if (tope(DADA)< tope(MENOR))
  129. {
  130. apilar (&AUXDADA, desapilar (MENOR));
  131. apilar (MENOR, desapilar(DADA));
  132. }
  133. else
  134. {
  135. apilar (&AUXDADA, desapilar (DADA));
  136. }
  137. }
  138.  
  139. while (!pilavacia(&AUXDADA))
  140. {
  141. apilar (DADA, desapilar (&AUXDADA));
  142. }
  143.  
  144.  
  145. }
  146. while (!pilavacia(DADA));
  147.  
  148. }
  149.  
  150. /* 6. Hacer una función que inserte en una pila ordenada un nuevo elemento, conservando el orden de esta. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement