X-Git-Url: https://git.llucax.com/z.facultad/75.52/treemulator.git/blobdiff_plain/a356d91d88f7f3399d80e922f70e10a8f422a3ba..d1cfb7971a17f744717953a0466ee2efbd53f442:/src/main.cpp?ds=sidebyside diff --git a/src/main.cpp b/src/main.cpp index 3c30c4a..1eedc01 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3,17 +3,60 @@ #include "btree.h" #include "clave_fija.h" +void generar_random (std::list &lst, uint n); + int main (int argc, char *argv[]) { + 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])); - for (int i=0; i<=13; i++) { - ClaveFija c(i); + std::list::iterator it = lst.begin (); + while (it != lst.end ()) { + ClaveFija c(*it); - std::cout << "Agregando " << i << std::endl; + std::cout << "Agregando " << (*it) << std::endl; tree.AddKey (c); + it++; + } + + it = lst.begin (); + while (it != lst.end ()) { + ClaveFija c(*it); + + 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); + } +} +