Sie sind auf Seite 1von 2

INSTITUTO POLITÉCNICO DE LEIRIA

ESCOLA SUPERIOR DE TECNOLOGIA E GESTÃO


Algoritmos e Estruturas de Dados
2º ano, 1º semestre – 2017/2018
Ficha Prática 4

LISTAS DUPLAS NÃO ORDENADAS


Acrescente ao seu projeto das aulas práticas o código fonte existente no projeto das
aulas teóricas. Os exercícios seguintes devem ser desenvolvidos nos packages:
• pt.ipleiria.estg.dei.aed.colecoes.iteraveis
• pt.ipleiria.estg.dei.aed.colecoes.iteraveis.lineares.naoordenadas.estruturas
• pt.ipleiria.estg.dei.aed.colecoes.iteraveis.lineares.naoordenadas.utilizacao

Descarregue os ficheiros de apoio à ficha 4 a partir do moodle e coloque-os no


package pt.ipleiria.estg.dei.aed.colecoes.iteraveis.lineares.naoordenadas.utilizacao.

1. Lista Dupla Não Ordenada

Figura 1. Esquema de uma Lista Dupla Não Ordenada

a) De acordo com a estrutura apresentada na Figura 1 implemente a estrutura de


dados ListaDuplaNaoOrdenada<T> (que implemente a interface
ColecaoIteravelLinearNaoOrdenada<T>,);
i. Defina os atributos da classe;
ii. Implemente a classe interna ListaDuplaNaoOrdenada<T>.No;
iii. Implemente o construtor;
iv. Implemente os restantes métodos de acordo com a seguinte ordem:
• Inserção no início e no fim;
• Pesquisa;
• Inserção em qualquer posição;
• Remoção;
• Consulta;
• Contém;
• Número de elementos;
• Iterador.
1/2
v. Crie a interface IteradorIteravelDuplo<T> que acrescente à interface
IteradorIteravel<T> os métodos:
• Verificar se pode recuar;
• Recuar para o elemento anterior e devolvê-lo;

vi. Implemente a classe interna ListaDuplaNaoOrdenada<T>.Iterador


(que implemente a interface IteradorIteravelDuplo<T>).
b) Utilizando a classe MainPraticaListaDuplaNaoOrdenada, teste a
ListaDuplaNaoOrdenada<T>;
c) Usando o JGrasp, visualize as alterações efetuadas na lista durante o teste.

2. Lista Dupla Circular com Base Não Ordenada

Figura 2. Esquema de uma Lista Dupla Circular com Base Não Ordenada

a) De acordo com a Figura 2 implemente a estrutura de dados


ListaDuplaCircularBaseNaoOrdenada<T> (que implemente a interface
ColecaoIteravelLinearNaoOrdenada<T>);
i. Defina os atributos da classe;
ii. Implemente a classe interna
ListaDuplaCircularBaseNaoOrdenada<T>.No;
iii. Implemente o construtor;
iv. Implemente os restantes métodos de acordo com a seguinte ordem:
• Inserção no início e no fim;
• Pesquisa;
• Inserção em qualquer posição;
• Remoção;
• Consulta;
• Contém;
• Número de elementos;
• Iterador.
v. Implemente a classe interna
ListaDuplaCircularBaseNaoOrdenada<T>.Iterador (que implemente
IteradorIteravelDuplo<T>).
b) Utilizando a classe MainPraticaListaDuplaCircularBaseNaoOrdenada, teste
a ListaDuplaCircularBaseNaoOrdenada<T>;
c) Usando o JGrasp, visualize as alterações efetuadas na lista durante o teste.

2/2

Das könnte Ihnen auch gefallen