]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blobdiff - src/main.cpp
DoxyDoc.
[z.facultad/75.52/treemulator.git] / src / main.cpp
index c22dde916725dd97e9b4d4d0973387e1c9ee788d..1eedc01920b41da513b7f3166e35514ec0b742c5 100644 (file)
@@ -3,17 +3,60 @@
 #include "btree.h"
 #include "clave_fija.h"
 
+void generar_random (std::list<int> &lst, uint n);
+
 int main  (int argc, char *argv[])
 {
-       BTree *tree;
-       ClaveFija c(5);
+       std::list<int> 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<int>::iterator it = lst.begin ();
+       while (it != lst.end ()) {
+               ClaveFija c(*it);
 
-       tree = new BTree ("test.idx", 1024);
+               std::cout << "Agregando " << (*it) << std::endl;
+               tree.AddKey (c);
+               it++;
+       }
 
-       tree->AddKey (c);
+       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<int> &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);
+       }
+}
+