Estruturas de Dados 2018/2019 (CC1007) - DCC/FCUP

Informações para o 2º Teste Prático


Informações Gerais


Objectivos específicos para cada exercício e problemas de treino

  1. [30%] Exercício 1: implementação de métodos para listas ligadas simples.
    Terão de adicionar um ou mais pequenos métodos à classe SinglyLinkedList. Será dada como base a implementação dada nas aulas (ver slides | ver implementação) e serão descritos o métodos a implementar, incluindo a assinatura do método (qual o tipo de retorno e o tipo dos argumentos). Irão submeter a classe como nas aulas (com os novos métodos adicionados).  
  2. [30%] Exercício 2: implementar método que usa API de pilhas e/ou filas.
    Terão de implementar um novo método que recebe como argumentos (ou usa) os TADs pilhas e/ou filas. Terão de usar a API do TAD respectivo (ex: push ou pop nas pilhas, enqueue ou dequeue nas filas). A pilha e/ou fila será dada ou poderá ser usada com o código das aulas (ver slides | MyStack | MyQueue).  
  3. [30%] Exercício 3: programa completo (incluindo ler e escrever) que usa listas, pilhas e/ou filas.
    Terão de implementar um programa completo, que leia um dado input (usando a classe Scanner) e escreva o resultado pedido. O tema do problema implicará que é conveniente usar listas, pilhas ou filas, mas poderão usar qualquer implementação (ex: usar a base de código dada nas aulas, usar TADs do próprio Java, ou usar uma qualquer implementação vossa). O esforço de implementação esperado é pequeno (se souberem o que estão a fazer).  
  4. [10%] Exercício 4: pequeno problema envolvendo eficiência algorítmica.
    Terão de resolver um pequeno problema, para o qual terão de pensar no algoritmo adequado. O problema não será completamente resolúvel com uma solução exaustiva de "força bruta" e será necessário ser eficiente. A complexidade esperada será dada no enunciado e não será dado nenhum código base.  

Código Base Disponível

Terão acesso a todo o código base de listas ligadas, pilhas e filas, nomeadamente:

Ao submeter, o Mooshak irá reconhecer e compilar código que use estas classes.