aeds2/fonte/u07 Tabelas e dicionários/java/hashDiretoReserva/Hash.java

64 lines
1.4 KiB
Java

public class Hash {
int tabela[];
int m1, m2, m, reserva;
final int NULO = -1;
public Hash() {
this(13, 7);
}
public Hash(int m1, int m2) {
this.m1 = m1;
this.m2 = m2;
this.m = m1 + m2;
this.tabela = new int[this.m];
for (int i = 0; i < m1; i++) {
tabela[i] = NULO;
}
reserva = 0;
}
public int h(int elemento) {
return elemento % m1;
}
public boolean inserir(int elemento) {
boolean resp = false;
if (elemento != NULO) {
int pos = h(elemento);
if (tabela[pos] == NULO) {
tabela[pos] = elemento;
resp = true;
} else if (reserva < m2) {
tabela[m1 + reserva] = elemento;
reserva++;
resp = true;
}
}
return resp;
}
public boolean pesquisar(int elemento) {
boolean resp = false;
int pos = h(elemento);
if (tabela[pos] == elemento) {
resp = true;
} else if (tabela[pos] != NULO) {
for (int i = 0; i < reserva; i++) {
if (tabela[m1 + i] == elemento) {
resp = true;
i = reserva;
}
}
}
return resp;
}
boolean remover(int elemento) {
boolean resp = false;
// ...
return resp;
}
}