]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blob - src/main.cpp
Bugfix : Condición base para cortar la recursividad.
[z.facultad/75.52/treemulator.git] / src / main.cpp
1
2
3 #include "btree.h"
4 #include "clave_fija.h"
5
6 void generar_random (std::list<int> &lst, uint n);
7
8 int main  (int argc, char *argv[])
9 {
10         std::list<int> lst;
11
12         BTree tree ("test.idx", 64);
13         
14         if (argc != 2) {
15                 printf ("Falta parametro cantidad de elementos a agregar\n");
16                 return 1;
17         }
18
19         generar_random (lst, atoi(argv[1]));
20
21         std::list<int>::iterator it = lst.begin ();
22         while (it != lst.end ()) {
23                 ClaveFija c(*it);
24
25                 std::cout << "Agregando " << (*it) << std::endl;
26                 tree.AddKey (c);
27                 it++;
28         }
29
30         it = lst.begin ();
31         while (it != lst.end ()) {
32                 ClaveFija c(*it);
33
34                 if (tree.FindKey (c))
35                         std::cout << (*it) << " encontrada\n";
36                 else
37                         std::cout << (*it) << " NO encontrada\n";
38                 it++;
39         }
40
41         return 0;
42 }
43
44 void generar_random (std::list<int> &lst, uint n)
45 {
46         /* Genero N numeros aleatorios entre -3*n y 3*n */
47         bool *numeros = new bool [6*n+1];
48         int random;
49
50         memset (numeros, 0, (6*n+1)*sizeof (bool));
51
52         srand (time (NULL));
53         for (uint i=0; i < n; i++) {
54                 do {
55                         random = 1 + (int)(6.0f * n * rand () / (RAND_MAX + 1.0f) - 3.0f * n);
56                         std::cout << random << std::endl;
57                 } while (numeros[random + 3 * n] == true);
58                 numeros[random + 3 * n] = true;
59                 lst.push_back (random);
60         }
61 }
62