Definido no ficheiro hashmap.c.
Ir para o código fonte deste ficheiro.
Funções | |
| static int | reHash (HashMap hmap) |
| Redimensiona uma tabela de hash. | |
| HashMap | newHash (int size, float factor, int(*hash)(void *), int(*equals)(void *, void *)) |
| Cria uma tabela de hash. | |
| int | hashSetHash (HashMap hmap, int(*hash)(void *)) |
| Altera a função de hash associada a uma tabela. | |
| int | hashSetEquals (HashMap hmap, int(*equals)(void *, void *)) |
| Altera a função que compara duas chaves de uma tabela. | |
| int | hashSetFactor (HashMap hmap, int factor) |
| Altera o factor de "reestruturação" da tabela. | |
| void | hashDelete (HashMap hmap) |
| Elimina uma tabela de hash. | |
| int | hashInsert (HashMap hmap, void *key, void *value, int replace) |
| Insere um par chave/valor numa tabela de hash. | |
| int | hashRemove (HashMap hmap, void *key, void **value, void(*del)(void *)) |
| Remove um elemento de uma tabela de hash. | |
| int | hashGet (HashMap hmap, void *key, void **value) |
| Procura um elemento numa tabela de hash. | |
| int | hashSize (HashMap hmap) |
| Determina o número de elementos de uma tabela de hash. | |
| Iterator | hashKeys (HashMap hmap) |
| Cria um iterador a partir das chaves de uma tabela de hash. | |
| Iterator | hashValues (HashMap hmap) |
| Cria um iterador a partir dos valores associados às chaves de uma tabela de hash. | |
| void hashDelete | ( | HashMap | hmap | ) |
| int hashGet | ( | HashMap | hmap, | |
| void * | key, | |||
| void ** | value | |||
| ) |
Procura um elemento numa tabela de hash.
Devolve o valor associado a uma chave se ela existir. Se a chave não existir é colocado o valor NULL em value.
| hmap | tabela de hash. | |
| key | chave que procuramos. | |
| value | endereço onde é colocado o resultado. |
| int hashInsert | ( | HashMap | hmap, | |
| void * | key, | |||
| void * | value, | |||
| int | replace | |||
| ) |
Insere um par chave/valor numa tabela de hash.
Caso a chave já exista, a variável replace determina se o valor antigo é ou não substituído (caso seja 0 não há substituição, caso tenha outro valor o novo elemento é inserido).
| hmap | tabela de hash. | |
| key | chave. | |
| value | valor associado à chave. | |
| replace | variável que determina se elementos já existente são ou não substituídos. |
| int hashRemove | ( | HashMap | hmap, | |
| void * | key, | |||
| void ** | value, | |||
| void(*)(void *) | del | |||
| ) |
Remove um elemento de uma tabela de hash.
Permite devolver o valor removido, caso o valor de value seja diferente de NULL. Se a chave não existir ou o elemento não for removido é colocado o valor NULL em value.
| hmap | tabela de hash. | |
| key | chave que queremos remover. | |
| value | endereço onde é colocado o elemento removido (ou NULL). | |
| del | função que elimina uma chave (ou NULL). |
| int hashSetEquals | ( | HashMap | hmap, | |
| int(*)(void *, void *) | equals | |||
| ) |
| int hashSetFactor | ( | HashMap | hmap, | |
| int | factor | |||
| ) |
| int hashSetHash | ( | HashMap | hmap, | |
| int(*)(void *) | hash | |||
| ) |
| int hashSize | ( | HashMap | hmap | ) |
Cria um iterador a partir dos valores associados às chaves de uma tabela de hash.
Coloca as referências para os "valores" num iterador. Se ocorrer algum erro a função devolve NULL.
| hmap | tabela de hash. |
| HashMap newHash | ( | int | size, | |
| float | factor, | |||
| int(*)(void *) | hash, | |||
| int(*)(void *, void *) | equals | |||
| ) |
Cria uma tabela de hash.
Se não for possível criar a tabela devolve NULL. Têm que ser especificadas a função de hash e a função que compara chaves, caso contrário a tabela não será criada. Estas funções podem ser alteradas a qualquer momento, utilizando as funções hashSetHash e hashSetEquals.
(Ver descrição das funções)
É ainda necessário indicar um valor (factor) que determina quando a dimensão da tabela deve ser aumentada; isso acontecerá quando:
size>factor*length
Esta variável terá que ser superior a 0.1.
| size | dimensão inicial da tabela. | |
| factor | factor de "reestruturação" da tabela. | |
| hash | função de hash. | |
| equals | função que compara duas chaves. |
| static int reHash | ( | HashMap | hmap | ) | [static] |
Redimensiona uma tabela de hash.
Duplica a dimensão do array que suporta a tabela e recoloca os elementos contidos na tabela antiga na nova tabela.
| hmap | tabela de hash. |