Veja meu sítio Estruturas de Dados |
public class LinearProbingHashST< Key, Value> { private int N; private int M = 16; private Key[] keys; private Value[] vals; public LinearProbingHashST( ) { keys = (Key[]) new Object[M]; vals = (Value[]) new Object[M]; } private int hash( Key key) { return (key.hashCode( ) & 0x7fffffff) % M; } private void resize( int cap) { LinearProbingHashST< Key, Value> t; t = new LinearProbingHashST< Key, Value>( cap); for (int i = 0; i < M; i++) if (keys[i] != null) t.put( keys[i], vals[i]); keys = t.keys; vals = t.vals; M = t.M; } public void put( Key key, Value val) { if (N >= M/2) resize(2*M); int i; for (i = hash( key); keys[i] != null; i = (i+1) % M) if (keys[i].equals( key)) { vals[i] = val; return; } keys[i] = key; vals[i] = val; N++; } public Value get( Key key) { int i; for (i = hash( key); keys[i] != null; i = (i+1) % M) if (keys[i].equals( key)) return vals[i]; return null; } } |
MAC0323 é uma disciplina obrigatória (3o. semestre) do BCC (Bacharelado em Ciência da Computação). (O nome da disciplina deveria ser Algoritmos e Estruturas de Dados.)
Resultado de levantamento feito entre ex-alunos: "Quais foram as disciplinas mais importantes que você cursou no BCC?"
Outros assuntos: Estruturas de Dados | Exercícios de Teoria dos Grafos | Uma Introdução Sucinta à Teoria dos Grafos | Otimização Combinatória | Minicurso de Análise de Algoritmos | Análise de Algoritmos | O que é uma prova? | Projeto de Algoritmos em C | Algoritmos para Grafos via Sedgewick | Literate Programming & CWEB | Algoritmos de Programação Linear |