Con esto que esta hasta ahora, hice un add de 1900 y no peto (falta
revisar si es correcto el arbol armado :)
bool BTreeData::operator < (const BTreeData &data) const
{
bool BTreeData::operator < (const BTreeData &data) const
{
+ if (!data.clave) return false;
+
return (*clave) < (*(data.clave));
}
return (*clave) < (*(data.clave));
}
class BTreeChildData:public BTreeData {
public:
class BTreeChildData:public BTreeData {
public:
- BTreeChildData (uint child):BTreeData () { hijo = child; }
+ BTreeChildData (uint child):BTreeData () { hijo = child; clave = NULL; }
BTreeChildData (uchar *node);
virtual ~BTreeChildData ();
BTreeChildData (uchar *node);
virtual ~BTreeChildData ();
int main (int argc, char *argv[])
{
BTree tree ("test.idx", 64);
int main (int argc, char *argv[])
{
BTree tree ("test.idx", 64);
+
+ if (argc != 2) {
+ printf ("Falta parametro cantidad de elementos a agregar\n");
+ return 1;
+ }
- for (int i=0; i<=13; i++) {
+ for (int i=0; i<=atoi(argv[1]); i++) {
ClaveFija c(i);
std::cout << "Agregando " << i << std::endl;
ClaveFija c(i);
std::cout << "Agregando " << i << std::endl;