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++; } } } }
public string GraficarTablaHash() { tabladis = new TablaDispersa(43); inOrden(Arbol.Raiz); return(tabladis.GraficarTabla()); }