/**Se lee una objeto de la clase CTablaHashExt que sera utilizada el la Hash Dinámica*/ public CTablaHashExt LeerTablaHashExt(long dir) { CTablaHashExt tExt; CEntrada entradaAux; CCubeta cubetaAux; long aux; int posCub; entradaAux = null; tExt = null; if (dir != -1) { tExt = new CTablaHashExt(); br.BaseStream.Seek(dir, SeekOrigin.Begin); tExt.setDir(br.ReadInt64()); tExt.setPrefAsociacion(br.ReadInt32()); tExt.setCabEntradas(br.ReadInt64()); tExt.setNumReg(br.ReadInt32()); aux = tExt.getCabEntradas(); while (aux != -1) { entradaAux = LeerEntrada(aux); cubetaAux = LeerCubeta(entradaAux.getDirCubeta()); if ((posCub = buscaCubeta(cubetaAux.getDir(), tExt)) == -1) entradaAux.setCubeta(cubetaAux); else entradaAux.setCubeta(tExt.getAtEntrada(posCub).getCubeta()); tExt.insEntrada(entradaAux); aux = entradaAux.getSigEntrada(); } } return (tExt); }
/**Se escribe la tabla hash extendible de la organización hash dinámica*/ public void EscribeTablaHashExt(CTablaHashExt t) { bw.BaseStream.Seek(t.getDir(), SeekOrigin.Begin); bw.Write(t.getDir()); bw.Write(t.getPrefAsociacion()); bw.Write(t.getCabEntradas()); bw.Write(t.getNumReg()); }