Exemplo n.º 1
0
    public void Insertar(NodoUsuario nuevo)
    {
        if (nuevo != null)
        {
            //Verificacion de el tamaño de la tabla;
            if ((NumeroElementos * 100) / Tamaño > 50)
            {
                Tamaño = Tamaño * 2;
                while (true)
                {
                    int a = 0;
                    for (int i = 1; i < (Tamaño + 1); i++)
                    {
                        if (Tamaño % i == 0)
                        {
                            a++;
                        }
                    }
                    if (a == 2)
                    {
                        break;
                    }

                    Tamaño++;
                }

                TablaDispersa tmp = new TablaDispersa(Tamaño);

                for (int i = 0; i < Tabla.Length; i++)
                {
                    tmp.Insertar(Tabla[i]);
                }

                Tabla           = tmp.Tabla;
                NumeroElementos = tmp.NumeroElementos;
            }

            int indice = Funcion(nuevo.NickName);

            //Se inserta el nuevo elemento en la tabla

            if (Tabla[indice] == null)
            {
                Tabla[indice] = nuevo;
                NumeroElementos++;
            }
            else
            {
                //*********Algoritmo de Coliciones**********//
                int i = 1;
                int nuevoindice;
                while (true)
                {
                    int nVuelta;
                    nuevoindice = indice + (i * i);

                    if (nuevoindice > Tamaño)
                    {
                        nVuelta     = nuevoindice / Tamaño;
                        nuevoindice = nuevoindice - (nVuelta * Tamaño);
                    }

                    if (Tabla[nuevoindice] == null)
                    {
                        Tabla[nuevoindice] = nuevo;
                        NumeroElementos++;
                        break;
                    }
                    i++;
                }
            }
        }
    }
Exemplo n.º 2
0
 public string GraficarTablaHash()
 {
     tabladis = new TablaDispersa(43);
     inOrden(Arbol.Raiz);
     return(tabladis.GraficarTabla());
 }