Example #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);
        }
Example #2
0
        private CTablaHashExt creaTabla(CTablaHashExt tH)
        {
            CTablaHashExt nueva;
            CEntrada entAux;

            nueva = new CTablaHashExt();

            nueva.setPrefAsociacion(tH.getPrefAsociacion());
            nueva.setNumReg(tH.getNumReg());

            foreach (CEntrada e in tH.getListEntradas())
            {
                entAux = new CEntrada();
                entAux.setID(e.getID());
                entAux.setEspejo(e.getEspejo());
                nueva.insEntrada(entAux);
            }

            return (nueva);
        }