Advertisement
fabgonber

Untitled

Nov 18th, 2020 (edited)
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.84 KB | None | 0 0
  1. /*
  2.     Ejercicios:
  3.         1.- ordene un vector de menor a mayor
  4.         2.- ordene un vector de mayor a menor
  5.         3.- dado un vector con edades de personas, ordene a los mayores de 18 por edad ascendente y a los menores por orden de llegada (ubicacion en el vector). colocando primero a los mayores
  6.    
  7. */
  8. #include <iostream>
  9. #include "heap.h"
  10. #include "stack.h"
  11. #include "colagenerica.h"
  12. const int largo = 15;
  13. using namespace std;
  14.  
  15.  
  16. typedef int arreglo[largo];
  17.  
  18. void llena_vector(arreglo los_valores)
  19. {
  20.   int i, dato;
  21.   // paso 1: llenar el vector
  22.   for (i=0;i<largo;i++)
  23.   {
  24.       cout << i <<".- ingrese numero : ";
  25.       cin >> dato;
  26.       los_valores[i] = dato;
  27.   }
  28. }
  29.  
  30. void imprime_vector(arreglo los_valores)
  31. {
  32.   int i;
  33.   // paso 1: llenar el vector
  34.   for (i=0;i<largo;i++)
  35.   {
  36.       cout << i <<".-  : " << los_valores[i] << endl;
  37.   }
  38. }
  39.  
  40. void ordena_vector_ascendente(arreglo los_valores)
  41. {
  42.   int i, dato;
  43.   Heap<int> unos_enteros;
  44.   for (i=0;i<largo;i++)
  45.   {
  46.       unos_enteros.agregar(los_valores[i],los_valores[i]);
  47.   }
  48.   i = 0;
  49.   while (!(unos_enteros.vacio()))
  50.   {
  51.       dato = unos_enteros.extraer();
  52.       los_valores[i] = dato;
  53.       i++;
  54.   }
  55. }
  56.  
  57. void ordena_vector_descendente(arreglo los_valores)
  58. {
  59.  
  60.   int i, dato;
  61.   Stack<int> pila_entera;
  62.   ordena_vector_ascendente(los_valores);
  63.   for (i=0;i<largo;i++)
  64.   {
  65.       dato = los_valores[i];
  66.       pila_entera.push(dato);
  67.   }
  68.   i=0;
  69.   while (!(pila_entera.empty()))
  70.   {
  71.       dato = pila_entera.pop();
  72.       los_valores[i] = dato;
  73.       i++;
  74.   }
  75. }
  76.  
  77. void orden_ejercicio3(arreglo los_valores)
  78. {
  79.   Heap<int> mayores;
  80.   Cola<int> menores;
  81.   int i, dato;
  82.  
  83.   for (i=0;i<largo;i++)
  84.   {
  85.  
  86.       dato = los_valores[i];
  87.  
  88.       if (dato>18)
  89.       {
  90.  
  91.         mayores.agregar(dato,dato);
  92.       }
  93.       else
  94.       {
  95.  
  96.         menores.agregar(dato);
  97.       }
  98.   }
  99.   i = 0;
  100.   // extraigo datos del Heap
  101.   while (!(mayores.vacio()))
  102.   {
  103.       dato = mayores.extraer();
  104.       los_valores[i] = dato;
  105.       i++;
  106.   }
  107.   // extraigo datos de la cola
  108.   while (!(menores.vacio()))
  109.   {
  110.       dato = menores.extraer();
  111.       los_valores[i] = dato;
  112.       i++;
  113.   }
  114.  
  115.  
  116. }
  117.  
  118. int main() {
  119.   cout << "Hello World!\n";
  120.  
  121.  
  122.   arreglo mis_datos, las_edades;
  123.   /*
  124.   llena_vector(mis_datos);
  125.   imprime_vector(mis_datos);
  126.   */
  127.  
  128.   /*
  129.   // ejercicio 1:
  130.   cout << "voy a ordenar ascendente\n";
  131.   ordena_vector_ascendente(mis_datos);
  132.   imprime_vector(mis_datos);
  133.   */
  134.  
  135.   /*
  136.   // ejercicio 2:
  137.   cout << "voy a ordenar descendente\n";
  138.   ordena_vector_descendente(mis_datos);
  139.   imprime_vector(mis_datos);
  140.   */
  141.  
  142.   // ejercicio 3;
  143.   llena_vector(las_edades);
  144.   imprime_vector(las_edades);
  145.   cout << "Segunda impresion\n";
  146.   imprime_vector(las_edades);
  147.   cout << "voy a ordenar como se pidio\n";
  148.   orden_ejercicio3(las_edades);
  149.   imprime_vector(las_edades);
  150.  
  151.  
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement