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

74 lines
1.3 KiB
Java

public class Hash {
int tabela[];
int m1, m2, m, reserva;
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 < m; 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 {
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;
}
}