예제 #1
0
  private byte[] empacarNodo() {
    byte[] buffer = new byte[61 + _tamanoClave * 4];
    Empaquetamiento.empaquetarBoolean(false, buffer, 0);
    Empaquetamiento.empacarLong(_miPosicion, buffer, 1);
    Empaquetamiento.empacarLong(_padre, buffer, 9);
    Empaquetamiento.empacarInt(_cantElementos, buffer, 17);

    for (int i = 0; i <= 4; i++) {
      Empaquetamiento.empacarLong(_hijos[i], buffer, 21 + 8 * i);
    }

    for (int i = 0; i < _cantElementos; i++) {
      _claves[i].empacar(buffer, 61 + (_tamanoClave * i));
    }
    return buffer;
  }
예제 #2
0
  /*
  carga el nodo con los daotos que se encuentre en _miPosicion
  */
  private void cargarNodo() {
    try {
      _archivo.seek(_miPosicion);
      _archivo.read(_buffer);
    } catch (IOException ex) {
      System.out.println("Ha ocurrido un error cargando el nodo!");
    }

    _padre = Empaquetamiento.desempacarLong(_buffer, 9);
    _cantElementos = Empaquetamiento.desempacarEntero(_buffer, 17);

    for (int i = 0; i <= 4; i++) {
      _hijos[i] = Empaquetamiento.desempacarLong(_buffer, 21 + 8 * i);
    }

    construirDatos();
    for (int i = 0; i <= 3; i++) _claves[i].desempacar(_buffer, 61 + _tamanoClave * i);
  }
예제 #3
0
 private boolean sigNodoEsHoja(long pNodo) {
   byte[] buffer = new byte[1];
   try {
     _archivo.seek(pNodo);
     _archivo.read(buffer);
   } catch (IOException ex) {
     Logger.getLogger(ArbolBmas.class.getName()).log(Level.SEVERE, null, ex);
   }
   return Empaquetamiento.desempacarBoolean(buffer, 0);
 }