X-Git-Url: https://git.llucax.com/z.facultad/75.52/treemulator.git/blobdiff_plain/b0999d0c64b37aee18260b6ba0f2dda47a974c6a..ab25c0cf9c5ccacbdb8940112562fc2d3e57086c:/src/main.cpp?ds=inline diff --git a/src/main.cpp b/src/main.cpp index 0ad6845..1eedc01 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,15 +1,62 @@ #include "btree.h" +#include "clave_fija.h" + +void generar_random (std::list &lst, uint n); int main (int argc, char *argv[]) { - BTree *tree; + std::list lst; + + BTree tree ("test.idx", 64); + + if (argc != 2) { + printf ("Falta parametro cantidad de elementos a agregar\n"); + return 1; + } + + generar_random (lst, atoi(argv[1])); + + std::list::iterator it = lst.begin (); + while (it != lst.end ()) { + ClaveFija c(*it); + + std::cout << "Agregando " << (*it) << std::endl; + tree.AddKey (c); + it++; + } - tree = new BTree ("test.idx", 1024); + it = lst.begin (); + while (it != lst.end ()) { + ClaveFija c(*it); - delete tree; + if (tree.FindKey (c)) + std::cout << (*it) << " encontrada\n"; + else + std::cout << (*it) << " NO encontrada\n"; + it++; + } return 0; } +void generar_random (std::list &lst, uint n) +{ + /* Genero N numeros aleatorios entre -3*n y 3*n */ + bool *numeros = new bool [6*n+1]; + int random; + + memset (numeros, 0, (6*n+1)*sizeof (bool)); + + srand (time (NULL)); + for (uint i=0; i < n; i++) { + do { + random = 1 + (int)(6.0f * n * rand () / (RAND_MAX + 1.0f) - 3.0f * n); + std::cout << random << std::endl; + } while (numeros[random + 3 * n] == true); + numeros[random + 3 * n] = true; + lst.push_back (random); + } +} +