Escolar Documentos
Profissional Documentos
Cultura Documentos
1. A partir dos arquivos fornecidos pelos professores, implemente uma lista dinamicamente
encadeada e uma aplicação de teste dessa classe. A classe deverá possuir os seguintes
métodos:
4. Escreva uma função que troque de posição duas células de uma mesma lista encadeada.
10. Implemente um método que recebe como parâmetro um valor inteiro n e divide a lista
encadeada em duas. A lista atual será mantida até a posição n, e o retorno do método será
uma segunda lista que começa no primeiro nó logo após a posição n na lista original.
11. Modifique a lista dinamicamente encadeada, para implementar um método inverter(), que
inverte a posição dos elementos da lista (primeiro passa a ser o último e vice-versa). O
resultado deve ser armazenado na própria lista e não em uma nova lista. Observação
importante: a inversão não deve ser realizada alterando o valor dos nós, mas sim alterando o
encadeamento deles.
12. Implemente uma lista circular encadeada, ou seja, o último elemento da lista aponta para
o primeiro. Utilize esta implementação para resolver o problema de Josephus que possui a
seguinte descrição:
a) construa uma lista encadeada circular para representar uma "roda" de N pessoas numeradas
de 1 a N;
b) em seguida, elimina cada M-ésima pessoa da lista a partir da primeira;
c) por fim, imprima o número da pessoa que sobrar.
13. Matrizes esparsas são matrizes que possuem uma grande quantidade de elementos que
valem zero. Para estas matrizes, é possível economizar um espaço significativo de memória
se apenas os termos diferentes de zero forem armazenados. As operações usuais sobre estas
matrizes (somar, multiplicar, inverter, etc.) também podem ser feitas em tempo muito menor
se não armazenarmos as posições que contém zeros. Uma maneira eficiente de representar
esse tipo de estrutura é utilizar listas encadeadas. É possível encontrar com relativa facilidade
duas formas de implementação de matrizes esparsas com essa abordagem. Na primeira
abordagem, cada nó armazena os seguintes elementos: linha, coluna, valor e apontamento
para o próximo nó da matriz. Implemente um TAD matriz esparsa utilizando esta abordagem.
Restrições:
- um passageiro não pode escolher a lista de espera em que deseja ser alocado.
- um passageiro não pode figurar em mais de uma lista de espera e nem aparecer mais
de uma vez em uma mesma lista.