예제 #1
0
        public void EliminarColision(K key)
        {
            int pos = BuscarPos(key);

            if (pos == 0)
            {
                EliminarColisionInicio();
            }
            else
            {
                if (pos == (cantidadcolisiones - 1))
                {
                    EliminarColisionFinal();
                }
                else
                {
                    if (pos > 0 && pos < (cantidadcolisiones - 1))
                    {
                        ObjetoHash <K, V> auxiliar1 = ObtenerPos(pos - 1);
                        ObjetoHash <K, V> auxiliar2 = ObtenerPos(pos);
                        ObjetoHash <K, V> auxiliar3 = ObtenerPos(pos + 1);

                        auxiliar1.siguiente = auxiliar3;
                        auxiliar2.siguiente = null;
                        cantidadcolisiones--;
                    }
                }
            }
        }
예제 #2
0
        //Metodos para eliminar-------------------------------------------------------------------------------------------->

        public void EliminarColisionInicio()
        {
            ObjetoHash <K, V> auxiliar = PrimerColision.siguiente;

            PrimerColision = auxiliar;
            cantidadcolisiones--;
        }
예제 #3
0
        public int BuscarPos(K key) //Búsqueda por key se hara así, pues las colisiones se hará una búsqueda secuencial
        {
            ObjetoHash <K, V> Valor = new ObjetoHash <K, V>();
            int cont = 0;
            int posi = -1;

            if (cantidadcolisiones > 0)
            {
                for (int i = 0; i < cantidadcolisiones; i++)
                {
                    if (key.CompareTo(ObtenerPos(cont).Key) == 0)
                    {
                        Valor = ObtenerPos(cont);
                        posi  = cont;
                        return(posi);
                    }
                    cont++;
                }
                return(posi);
            }
            else
            {
                return(posi);
            }
        }
예제 #4
0
 public void EliminarColisionFinal()
 {
     if (cantidadcolisiones > 0)
     {
         ObjetoHash <K, V> auxiliar;
         auxiliar                 = ObtenerPos(cantidadcolisiones - 2);
         UltimaColision           = auxiliar;
         UltimaColision.siguiente = null;
         cantidadcolisiones--;
     }
 }
예제 #5
0
        public void Agregar(K key, V value) // agrega al final de la lista
        {
            ObjetoHash <K, V> Nom2 = new ObjetoHash <K, V>(key, value);

            if (cantidadcolisiones == 0)
            {
                agregarcolisioninicio(Nom2);
            }
            else
            {
                UltimaColision.siguiente = Nom2;
                UltimaColision           = Nom2;
                cantidadcolisiones++;
            }
        }
예제 #6
0
 //Métodos para agregar a la lista----------------------------------------------->
 public void agregarcolisioninicio(ObjetoHash <K, V> Nom1)//agrega al inicio de la lista
 {
     if (cantidadcolisiones == 0)
     {
         PrimerColision = Nom1;
         UltimaColision = Nom1;
         cantidadcolisiones++;
     }
     else
     {
         ObjetoHash <K, V> temp = Nom1;
         temp.siguiente = PrimerColision;
         PrimerColision = temp;
         cantidadcolisiones++;
     }
 }
예제 #7
0
 public ObjetoHash <K, V> ObtenerPos(int Pos)
 {
     if (cantidadcolisiones == 0 || Pos == 0)
     {
         return(ObtenerInicio());
     }
     else
     if (Pos >= cantidadcolisiones)
     {
         return(ObtenerFinal());
     }
     else
     {
         ObjetoHash <K, V> temp = PrimerColision;
         int cont = 0;
         while (cont < Pos)
         {
             temp = temp.siguiente;
             cont++;
         }
         return(temp);
     }
 }
예제 #8
0
        public int CompareTo(object?obj)
        {
            ObjetoHash <K, V> value = (ObjetoHash <K, V>)obj;

            return(Key.CompareTo(value.Key));
        }
예제 #9
0
 public ObjetoHash()
 {
     siguiente = null;
 }
예제 #10
0
 public ObjetoHash(K KEY, V VALUE)
 {
     this.Key   = KEY;
     this.Value = VALUE;
     siguiente  = null;
 }