Forum Pplware

Versão Completa: [C] Hash tables
Está de momento a ver uma versão reduzida do nosso conteúdo. Ver versão completa com o formato adequado.
Boas,

Precisava que alguem me arranja-se um exemplo duma hash table com chain ...ShyShyConfused


Vou ser mais preciso, tenho q gerir um grande nr de nomes, e tenho q ter um "sistema" que me permita fazer um search, vou usar hash tables pra isso, mas então lembrei m que caso apareçam 2as,3s ou até 1000 'Ana Maria' vou ter um índice igual... entao das 2as uma ou arranjo maneira de qnd ter um nome repetido somar um nr e assim passar pro indice seguinte ou crio um array no indice qnd tenho nomes iguais e assim mostro as ocorrências dos nomes....

Agradecia tb q se vos ocorrer algum método diferente, escrevam... Rolleyes


Hasta, gracias
Honestamente não percebi porque precisas das Hash tables, qual o teu problema nem o exemplo que queres...

Faz assim, diz em que linguagem queres fazer isso, quais as limitações (se existirem), os teus conhecimentos da linguagem e de algoritmia, qual o problema em si (ou seja, o que tem de acontecer), e qual a tua dificuldade.
Mudando ligeiramente de assunto, se o nome se pode repetir talvez não seja boa ideia usar (apenas) o nome como índice.

Isto não quer dizer, no entanto, que as hash tables com cadeia sejam uma má escolha.
É em C... eu tinha metido no nome da thread Shy


Pronto... Imagina que tens 20000 pessoas e essas pessoas estão relacionadas entre si "tipo rede social" e eu queria que fosse possível criar um search por nome, dai as Hash tables pra ser mais rápida a pesquisa...só que as Hash tables criam um valor pro nome, e se eu tiver um nome igual tenho um valor igual, por isso é que queria a chain na Hash table...
Ou seja, eu tenho um grafo com os "utilizadores" e as suas respectivas relações, e depois quero que seja fácil pesquisar por nome e assim encontrar um amigo, mas neste trabalho eu tenho que ter em conta a rapidez do processamento...

É um pc dificil de explicar, tb tenho q dizer que os meus conhecimentos em Algoritmos são muito lineares, mas isso não é problema pq tenho como me desenrascar nesse campo ... ahh e tenho bons conhecimentos em C...
(12-03-2010 21:19)Ferreira Escreveu: [ -> ]Mudando ligeiramente de assunto, se o nome se pode repetir talvez não seja boa ideia usar (apenas) o nome como índice.

Isto não quer dizer, no entanto, que as hash tables com cadeia sejam uma má escolha.

Pois mas é me pedido isso ... por isso é que eu pensei na Chain...
Parece q resolvi o meu problema, e como nao vi nada aqui a ajudar, vou colocar o meu exemplo nao vá este ajudar alguem WinkWink

Código:
typedef struct utilizador {
   int w;
  char k ;
  int whatever;
  struct utilizador *next;
} *Users;

struct tabelas {
  int x;
  int y;
  struct utilizador * tabela[10000];
};

Entao, o q eu fiz foi criar a chain na tabela de hash quase como se fosse uma lista ligada, ou seja qnd vejo q o índice q tou a preencher já nao é nulo, crio o "nodo" da ligação como nas listas ligadas...

Atenção q o meu exemplo pode ser muito rudimentar e mal formulado etc... mas pra mim serviu, e pode ser q ajude alguemWinkTongue ...
URL's de Referência