Escolar Documentos
Profissional Documentos
Cultura Documentos
Essa interface fornece uma estrutura básica para operações comuns em listas
duplamente encadeadas. As classes que implementam essa interface devem
fornecer implementações específicas para cada um desses métodos. Por
exemplo, uma implementação concreta poderia ser uma classe ListaDupEnc<T>
que contém os detalhes da implementação dos métodos mencionados.
ListaDupEnc<T>
1. Atributos:
contElementos: Um contador para manter o controle do número de
elementos na lista.
noCabeca: Um nó sentinelar (cabeça) que não contém um elemento e
serve como marcador para o início e o fim da lista.
2. Construtor:
public ListaDupEnc(): Inicializa a lista com um nó sentinelar
(noCabeca) e configura o contador de elementos para zero.
3. Métodos da Interface IlistaDupEnc<T>:
Métodos como getInicio(), getFim(), clear(), size(), estaVazia()
implementam as operações básicas definidas pela interface.
4. Inserção de Elementos:
InserirInicio(T elemento): Insere um novo nó com o elemento
especificado no início da lista.
InserirFim(T elemento): Insere um novo nó com o elemento
especificado no final da lista.
Inserir(int pos, T elemento): Insere um novo nó com o elemento
especificado na posição indicada. Lança uma exceção se a posição for
inválida.
5. Verificação e Remoção de Elementos:
contem(T elemento): Verifica se a lista contém o elemento especificado.
RemoverInicio(): Remove o primeiro elemento da lista.
RemoverFim(): Remove o último elemento da lista.
Remover(int pos): Remove o elemento na posição indicada. Lança uma
exceção se a posição for inválida.
6. Ordenação usando Selection Sort:
selectionSort(): Implementa o algoritmo de ordenação Selection Sort
para ordenar a lista. Usa a interface Comparable<T> para comparar os
elementos.
7. Método toString():
toString(): Converte a lista em uma representação de string.
8. Implementação de Iterable<T>:
iterator(): Retorna um objeto Iterator<T> para permitir a iteração
sobre os elementos da lista.
9. Classe Interna Anônima para Iterator:
Dentro do método iterator(), há uma implementação anônima da
interface Iterator<T>. Essa implementação permite percorrer a lista de
trás para frente.
NoDupEnc<T>
1. Atributos:
private T elemento: Armazena o elemento associado ao nó.
private NoDupEnc<T> proximo: Referência para o próximo nó na
lista.
private NoDupEnc<T> anterior: Referência para o nó anterior na
lista.
2. Construtores:
public NoDupEnc(T objeto):
Um construtor que cria um nó com um
elemento especificado e define as referências para o próximo e o
anterior como nulas.
public NoDupEnc(T objeto, NoDupEnc<T> proximo, NoDupEnc<T>
anterior):
Outro construtor que permite especificar o elemento,
o próximo nó e o nó anterior ao criar o nó.
3. Métodos Getters e Setters:
public T getElemento(): Retorna o elemento associado ao nó.
public void setElemento(T elemento): Define o elemento
associado ao nó.
public NoDupEnc<T> getProximo(): Retorna o próximo nó na lista.
public void setProximo(NoDupEnc<T> proximo): Define o próximo nó
na lista.
public NoDupEnc<T> getAnterior(): Retorna o nó anterior na lista.
public void setAnterior(NoDupEnc<T> anterior): Define o nó
anterior na lista.