X-Git-Url: https://git.llucax.com/z.facultad/75.52/treemulator.git/blobdiff_plain/6eca7410b5a4c3c5225d852dd1d1ce9b74a7f4cd..b192ca855bf9015796ec8f9093d8c872fffbcd5c:/src/main.cpp?ds=sidebyside diff --git a/src/main.cpp b/src/main.cpp index c367a4c..1eedc01 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3,8 +3,12 @@ #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) { @@ -12,13 +16,47 @@ int main (int argc, char *argv[]) return 1; } - for (int i=0; i<=atoi(argv[1]); i++) { - ClaveFija c(i); + generar_random (lst, atoi(argv[1])); + + 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); + } +} +