int Archivo::obtenerBloqueLibre (Bloque* &bloque, int &idBloque){ if (cantidadBloquesLibres() > 0){ std::vector<int>::iterator it = this->bloquesLibres.begin(); //entrega el primer bloque libre de la lista idBloque = *it; obtenerBloque (bloque, idBloque); //una vez entregado lo elimina de la lista this->bloquesLibres.erase(it); return 0; }else return 1; }
ArbolBMasNumerico::ArbolBMasNumerico(string path, unsigned int tamanioBloque) : ArbolBMas(path, tamanioBloque) { this->archivoNodos = new ArchivoBloques(path, tamanioBloque); this->tamanioNodo = tamanioBloque; if (Util().existeArchivo(path)){ raiz = obtenerBloque(0); } else{ raiz = new Bloque(); guardarBloque(raiz, 0); } ultimaHojaVisitada = raiz; }