Resolução da 5ª Aula Prática

1.a)  

  1. A matriz elos já não é necessária, pois os elos passam a ser variáveis dinâmicas.  Os elos da lista deixarão de estar reservados a priori como elementos de uma matriz, passando a ser instâncias dinâmicas, construídas e destruídas quando for conveniente.
  2. As operações privadas ListaDeAluno::reservaElo() e ListaDeAluno::libertaElo() deixam de ser necessárias, pois as tarefas de gestão de memória passam para as mãos do sistema operativo.  Os operadores new e delete substituem essas operações.
  3. Como se discute no resumo da aula, o melhor é mesmo eliminar a operação.
  4. Tem de se ter o cuidado de remover os elos dinâmicos reservados.

1.b).  Ver lista_de_aluno.H, lista_de_aluno_impl.H e lista_de_aluno.C.

1.c), 1.d) e 1.e)  A transferência passa a ser feita através da simples manipulação de seis ponteiros.

2.a) e 2.b)  Ver lista_de_ponteiro_aluno.H, lista_de_ponteiro_aluno_impl.H, lista_de_ponteiro_aluno.C e ordena_alunos.C.

2.c)  Quem destrói os alunos é quem os construiu: a função main().

2.d)  Pouco.  Procurar endereços numa lista não é, em geral, muito útil!

3.  Ver lista_de_aluno.H, lista_de_aluno_impl.H e lista_de_aluno.C.