public void Rehash(int clave, string nickname, string password, string correo, bool conectado) { bool insertado = false; int i = 1; int indice; while (!insertado) { indice = clave + (int)Math.Pow(i, 2); if (indice >= tama) { indice = indice - tama; if (nodos[indice] != null && nodos[indice].nickname.Length != 0) { i++; } else { nodos[indice] = new NodoHashUsuarios(); nodos[indice].nickname = nickname; nodos[indice].password = password; nodos[indice].correo = correo; nodos[indice].conectado = conectado; registrosdisponibles++; registrosocupados--; insertado = true; } } else { if (nodos[indice] != null && nodos[indice].nickname.Length != 0) { i++; } else { nodos[indice] = new NodoHashUsuarios(); nodos[indice].nickname = nickname; nodos[indice].password = password; nodos[indice].correo = correo; nodos[indice].conectado = conectado; registrosdisponibles++; registrosocupados--; insertado = true; } } } }
public void Insertar(string nickname, string password, string correo, bool conectado) { if (nodos[clave(nickname)] != null && nodos[clave(nickname)].nickname.Length > 0) { Rehash(clave(nickname), nickname, password, correo, conectado); } else { nodos[clave(nickname)] = new NodoHashUsuarios(); nodos[clave(nickname)].nickname = nickname; nodos[clave(nickname)].password = password; nodos[clave(nickname)].correo = correo; nodos[clave(nickname)].conectado = conectado; registrosdisponibles--; registrosocupados++; } }