Пример #1
0
        public void del(string llave)
        {
            NodoHash nodoHashBusqueda = nodoHashInicial;

            NodoHash nodoHashPadre = null;

            //calculamos el hash
            int key = FuncionHash(llave, 5);

            while (nodoHashBusqueda.EnlaceHash != null)
            {
                if (nodoHashBusqueda.Key == key && nodoHashPadre == null)
                {
                    nodoHashInicial = null;
                }
                else if (nodoHashBusqueda.Key == key)
                {
                    nodoHashPadre.EnlaceHash = nodoHashBusqueda.EnlaceHash;
                    nodoHashBusqueda         = null;
                    //se lo lleva el garbage collector
                }
                else
                {
                    nodoHashPadre = nodoHashBusqueda;

                    nodoHashBusqueda = nodoHashBusqueda.EnlaceHash;
                }
            }
        }
Пример #2
0
        public void add(ListaLigada listaLigada)
        {
            NodoHash nodoHashActual = nodoHashInicial;

            //calculamos el hash
            int key = FuncionHash(listaLigada.nodoInicial.llave, 5);

            while (nodoHashActual.EnlaceHash != null)
            {
                if (nodoHashActual.Key == key)
                {
                    while (listaLigada.nodoInicial.Enlace != null)
                    {
                        listaLigada.nodoInicial = listaLigada.nodoInicial.Enlace;
                    }

                    listaLigada.AgregarNodo(listaLigada.nodoInicial.llave, listaLigada.nodoInicial.Dato);
                }
                else
                {
                    nodoHashActual = nodoHashActual.EnlaceHash;
                }
            }
            nodoHashActual.EnlaceHash = new NodoHash(key, listaLigada);
        }
Пример #3
0
        public NodoHash find(string llave)
        {
            NodoHash nodoHashBusqueda = nodoHashInicial;

            //calculamos el hash
            int key = FuncionHash(llave, 5);

            while (nodoHashBusqueda.EnlaceHash != null)
            {
                if (nodoHashBusqueda.Key == key)
                {
                    return(nodoHashBusqueda);
                }
                else
                {
                    nodoHashBusqueda = nodoHashBusqueda.EnlaceHash;
                }
            }

            return(null);
        }
Пример #4
0
 public MiHash()
 {
     nodoHashInicial = new NodoHash();
 }