コード例 #1
0
 public void Insert(TKey newKey, TData newData)
 {
     cerrarArchivo();
     archivoArbol = File.Open(rutaArchivo, FileMode.Open);
     if (Raiz == null)
     {
         nodoB <TKey, TData> newnodoB = NewnodoB();
         newnodoB.insertar(newKey, newData);
         Raiz = newnodoB;
         archivoArbol.Seek(saltarEncabezado(), SeekOrigin.Begin);
         archivoArbol.Write(ConvertStringTo_ByteChain(mostrar(Raiz)), 0, mostrar(Raiz).Length);
         Cuenta++;
         Altura++;
     }
     else
     {
         insertarRecursivamente(newKey, newData, Raiz);
     }
     archivoArbol.Seek(0, SeekOrigin.Begin);
     if (Raiz == null)
     {
         Encabezado = Generador.armarEncabezado(Generador.hacerNulo().ToString(), Generador.tamanioPosicionesFijas(ultimaPosicion), Orden, Altura);
     }
     else
     {
         Encabezado = Generador.armarEncabezado(Generador.tamanioPosicionesFijas(Raiz.posicionPrincipal), Generador.tamanioPosicionesFijas(ultimaPosicion), Orden, Altura);
     }
     archivoArbol.Write(ConvertStringTo_ByteChain(Encabezado), 0, Encabezado.Length);
     cerrarArchivo();
 }
コード例 #2
0
 public arbolBAsterisco(int TreeOrder, string archivoArbolName, string archivoArbolPath, ConvertStringToKey KeyConverter, ConvertStringToData StringConverter, GetData DataConverter, int KeyMaxLength, GetDataLength DataMaxLength)
 {
     Raiz                = null;
     Orden               = TreeOrder;
     Cuenta              = 0;
     Altura              = 0;
     ultimaPosicion      = 0;
     rutaArchivo         = archivoArbolPath + archivoArbolName;
     archivoArbol        = File.Create(rutaArchivo);//Se creará en la carpeta del proyecto
     espaciosDisponibles = new List <int>();
     Encabezado          = Generador.armarEncabezado(Generador.hacerNulo().ToString(), Generador.tamanioPosicionesFijas(0), Orden, 0) + Environment.NewLine;
     archivoArbol.Write(ConvertStringTo_ByteChain(Encabezado), 0, Encabezado.Length);
     ConverterStringToTkey  = KeyConverter;
     ConverterStringToTData = StringConverter;
     retornarDatos          = DataConverter;
     tamanioMaximoLlave     = KeyMaxLength;
     retornarTamanioDatos   = DataMaxLength;
     cerrarArchivo();
 }