Académique Documents
Professionnel Documents
Culture Documents
Mapas - maps
O que se pode fazer num mapa?
Adicionar chaves e elementos
Remover elementos (definidos através das
chaves)
Obter o elemento associado a uma chave
Alterar o elemento associado a uma chave
Verificar se uma chave está presente do mapa
Ver tamanho do mapa
Ver se o mapa está vazio
Limpar o mapa
Mapas - maps
Como implementar um Mapa?
Com qualquer uma das estruturas dadas
anteriormente
Basta que essas estruturas garantam a
correspondência entre as chaves e os elementos
e a sua não repetição
Ou criar uma classe de fachada que use uma das
estruturas dadas que garanta que não há
elementos repetidos e a correspondência entre
elementos e chaves
Atenção que algumas estruturas dadas, árvores
binárias de pesquisa, exigem que, pelo menos, as
chaves possam ser ordenáveis
As árvores binárias normais não obrigam a isso
Mapas - maps
Implementação de um mapa recorrendo a uma
lista ligada
Usa um truque comum:
definir uma classe que faça o agrupamento de
chaves
É preciso ter cuidado! Como as pesquisas vão ser
feitas por chaves é necessário que ao comparar
elementos só se ligue às chaves
Se as chaves forem ordenáveis (não é necessário
nos mapas) é preciso olhar apenas para as
chaves
depois é só usar uma lista normal
Não é necessário implementar uma lista com
chaves
Mapas - maps
Implementação
class de um
MapaLista implements mapa
Mapa { recorrendo a uma lista
ligada
private Lista lista = new Lista();
Mapas - maps
Implementação de um mapa recorrendo
a uma lista ligada
class MapaLista implements Mapa {
Conjuntos - Sets
Um conjunto não é mais que uma colecção de
elementos
É exactamente o conceito de conjunto em
matemática
Num conjunto não pode haver elementos
repetidos
Num conjunto a ordem dos elementos é
arbitrária
Não define uma estrutura propriamente dita
Define apenas uma interface, ou seja, o que se
pode fazer com um conjunto
Rever as definições matemáticas ☺
Conjuntos - Sets
Um set define uma interface semelhante
à seguinte:
interface Set {
Conjuntos - Sets
Criar um set com o auxílio de um Vector
class SetVector implements Set {
// …
} e Estruturas de Dados
Algoritmos 2009/10 F.Sérgio Barbosa
Conjuntos - Sets
Criar um set com o auxílio de um Vector
class SetVector implements Set {
Conjuntos - Sets
Criar um set com o auxílio de um Vector
class SetVector implements Set {
return uniao;
}
} e Estruturas de Dados
Algoritmos 2009/10 F.Sérgio Barbosa
Conjuntos - Sets
Criar um set com o auxílio de um Vector
class SetVector implements Set {
return inter;
}
Conjuntos - Sets
Criar um set com o auxílio de um Vector
class SetVector implements Set {
return dif;
}