Lista 2 - Exercícios sobre listas
1. No método main de uma classe qualquer crie um objeto SequentialList representando uma lista
seqüencial geral de números inteiros. Faça também as seguintes operações:
a) inserir os números 10, 20, 30, 40, 50;
b) imprimir todos os números da lista;
c) inserir o número 14 no fim da lista;
d) ler um número e inseri-lo no início da lista;
e) ler um número e procurá-lo na lista, imprimindo a posição de sua primeira ocorrência a partir do
início; se não estiver na lista, imprimir uma mensagem adequada;
f) o que mudaria na implementação da classe SequentialList anterior se a lista estivesse em
ordem alfabética?
2. Modifique o método void insert (int o) da classe SequentialListComExcecao para não adicionar
elementos com chaves iguais a algum elemento já existente na lista.
3. Uma lista linear seqüencial qualquer tem seus elementos dispostos em ordem crescente. Ler
um valor X e inseri-lo na lista na posição correta. Para isso implemente uma classe ListaOrdenada
que seja filha da classe SequentialList e faça a sobreposição do método insert(int o) para ele
inserir o número na posição adequada da lista.
4. Como representaria uma lista de alunos cujo nó tem os seguintes campos? Crie uma classe em
Java, chamada Aluno, que represente esse nó, onde matrícula é a chave.
5. No método main(...) de uma classe chamada TestaLista, crie uma lista de alunos (usando a
classe Vector), onde os nós são do tipo Aluno (definido no exerc. 4). Ler matrícula, nome e idade
de diversos alunos e, para cada um, verificar se o aluno já está na lista: se estiver, retirá-lo da lista
e imprimir seus dados; se não estiver, inseri-lo. Não há dois alunos com a mesma matrícula.
6. Na mesma classe TestaLista, faça um método static que recebe a lista de alunos do ex. 7 e um
valor inteiro N e retira todos os alunos da lista que possuem idade menor que N.
7. Na classe SequentialListComExcecao, adicione o método “public void concat
(SequentialLIstComExcecao l)”. Esse método recebe uma lista como parâmetro e a concatena a
lista (objeto) corrente.
8. Seja a classe SequentialListComExcecao, crie um novo método chamado tranferirMaior() que
transfere o nó de maior valor para o início da lista, mantendo os demais na mesma ordem original.
Se não for possível fazer a movimentação, imprimir mensagem com o motivo específico, ou seja:
Lista vazia, Lista com um só nó,/ Maior valor já está no início da lista.
9. No método main de uma classe qualquer, crie uma lista (objeto do tipo
SequentialListComExcecao: lista com alocação seqüêncial) e insira os valores inteiros 5, 8, 20, e
30. Além disso, leia 5 valores fornecidos pelo usuário e os insira na lista de forma que, após cada
inserção, a lista continue ordenada. Para tanto, você pode usar o método “insert (int o, int pos)”
dado em aula, que insere o número o na posição pos da lista.
Download

Lista de Exercícios sobre Listas Encadeadas