Пример #1
0
        public void EliminaEnArbolPrimario(Atributo atributo, string Ruta, int Clave, string RutaArchivoDicc)
        {
            Arbol ArbolP = new Arbol(ManejadorArchivo.ObtenNodos(atributo, archivo, Ruta), atributo);
            Nodo  NodoDondeSevaAEliminar = ArbolP.ObtenNodoConLaClave(Clave);
            long  DireccionDondeEliminar = NodoDondeSevaAEliminar.ObtenApuntadorHoja(Clave);

            EliminaEnArbol(ArbolP, NodoDondeSevaAEliminar, Clave, DireccionDondeEliminar, Ruta, atributo, RutaArchivoDicc);
        }
Пример #2
0
        public void EliminaEnArbolSecundario(Atributo atributo, string Ruta, int Clave, string RutaArchivoDicc, long Direccion)
        {
            Arbol       ArbolS = new Arbol(ManejadorArchivo.ObtenNodos(atributo, archivo, Ruta), atributo); // Obtenemos los nodos del árbol secundario
            Nodo        Nodo   = ArbolS.ObtenNodoConLaClave(Clave);                                         // Creamos un nodo que va a servir como auxiliar para
            long        Dir    = ArbolS.ObtenDireccionDeHoja(Clave);
            List <long> Bloque = ManejadorArchivo.LeeCajonIndiceSecundario(Ruta, archivo, Dir);

            Bloque.Remove(Direccion);
            if (Bloque.Count == 0)
            {
                EliminaEnArbol(ArbolS, Nodo, Clave, Direccion, Ruta, atributo, RutaArchivoDicc);
            }
            else
            {
                ManejadorArchivo.EscribeCajonSecundario(Ruta, archivo, Dir, Bloque);
            }
            if (ArbolS.Nodos.Count == 0)
            {
                ManejadorArchivo.CreaArchivo(Ruta, archivo);
            }
        }