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; }
/* 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); }
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); }