Beispiel #1
0
        /**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);
        }
Beispiel #2
0
        /**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());
        }