Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Hashing enderecamento aberto - operações
1. C:UserselainDocumentsNetBeansProjectsHashingsrchashingoperacoes.java
1 package hashing;
2
3 import java.util.Scanner;
4
5 public class operacoes {
6
7 int numero, tamanho = 8, x, i, posicao;
8 char status;
9
10 hash tabela[] = new hash[tamanho]; //criando um VETOR do tipo HASH
11 Scanner s = new Scanner(System.in);
12
13 public void inicializar() {
14 System.out.println(" == INICIALIZANDO A HASH ==");
15 for (i = 0; i < tamanho; i++) {
16 tabela[i] = new hash();
17 tabela[i].setStatus('L');
18 }
19 System.out.println(" == HASH INICIALIZADA ==");
20 System.out.println("");
21 }
22
23 public void inserir() {
24 System.out.println(" == INSERINDO NA HEAP == ");
25 System.out.print(" Digite um número: ");
26 numero = s.nextInt();
27 posicao = hashing(numero); //numero % tamanho
28 i = 0;
29 while ((i < tamanho) && (tabela[(posicao + i) % tamanho].getStatus() != 'L') && (tabela[(posicao + i) % tamanho
30 i = i + 1; //incrementa i
31 }
32
33 //se a posição for menor que tamanho
34 if (i < tamanho) {
35 //seta o valor da CHAVE para o número digitado pelo usuário
36 tabela[(posicao + i) % tamanho].setChave(numero);
37 //muda o status da posicao para ocupadao
38 tabela[(posicao + i) % tamanho].setStatus('O');
39 System.out.println(" Elemento inserido com sucesso! ");
40 System.out.println("");
41 } else {
42 System.out.println(" Tabela Cheia ");
43 System.out.println("");
44 }
45 }
46
47 public void remover() {
48 System.out.println(" == REMOVENDO DA HEAP == ");
49 System.out.print(" Digite o número que deseja remover: ");
50 numero = s.nextInt();
51 //primeiro o elemento que se deseja remover precisa ser encontrado
52 posicao = consultar(numero);
53 //depois ele tem que ser setado como REMOVIDO
operacoes.java file:///C:/Users/elain/operacoes.html
1 de 2 10/09/2016 22:05
2. 54 if (posicao < tamanho) {
55 tabela[posicao].setStatus('R');
56 System.out.println(" O elemento " + tabela[posicao].getChave() +
57 " alocadao na chave " + posicao + " foi removido com sucesso! ");
58 System.out.println("");
59 } else {
60 System.out.println(" Elemento não encontrado! ");
61 System.out.println("");
62 }
63 }
64
65 public int consultar(int numero) {
66 System.out.println(" == MÉTODO CONSULTAR == ");
67 i = 0;
68 posicao = hashing(numero); // numero % tamanho
69
70 while ((i < tamanho) && (tabela[((posicao + i) % tamanho)].getStatus() != 'L')
71 && (tabela[((posicao + i) % tamanho)].getChave() != numero)) {
72 i = i + 1; //incrementa i
73 }
74
75 if (tabela[((posicao + i) % tamanho)].getChave() == numero
76 && tabela[((posicao + i) % tamanho)].getStatus() != 'R') {
77 x = ((posicao + i) % tamanho);
78 return x;
79 } else {
80 return tamanho;
81 }
82 }
83
84 public void listar() {
85 for (i = 0; i < tamanho; i++) {
86 //if (tabela[i].getStatus() == 'O') {
87 // System.out.println(" | Posição: " + i + " | Chave: " + tabela[i].getChave() + " | Status: " + tabela[i].getStatus());
88 // }
89 System.out.println(" | Posição: " + i + " | Chave: " + tabela[i].getChave() + " | Status: " + tabela[i].getStatus());
90 }
91 }
92
93 public int hashing(int numero) {
94 return numero % tamanho;
95 }
96
97 }
98
operacoes.java file:///C:/Users/elain/operacoes.html
2 de 2 10/09/2016 22:05