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

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


Informações Gerais


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

  1. [30%] Exercício 1: implementar um método simples para árvores binárias.
    Terão de adicionar um novo pequeno método à classe BTree. Será dada como base a implementação dada nas aulas e será descrito o método 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 o novo método adicionado). O esforço de implementação esperado é muito pequeno (menos que 10 linhas de código).  
  2. [30%] Exercício 2: implementar método estático para árvores binárias.
    Terão de implementar um método estático que recebe como argumento uma árvore binária (simples - uma BTree - ou de pesquisa, uma BSTree) e faz algo sobre ela. O esforço de implementação esperado é também pequeno, mas será um pouco mais complicado que o exercício 1 e poderá dar jeito criar métodos auxiliares.  
  3. [30%] Exercício 3: programa completo (incluindo ler e escrever) que usa conjuntos e/ou dicionários.
    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 conjuntos e/ou dicionárioos, 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).  
  4. [10%] Exercício 4: pequeno problema envolvendo recursividade.
    Terão de resolver um pequeno problema, para o qual terão de pensar no algoritmo adequado. O problema envolverá recursividade e será útil conhecer as ideias de flood fill e/ou subconjuntos e/ou permutações.. Este problema é destinado a alunos que desejem ter uma nota alta, e só deverá ser tentando depois dos outros três exercícios estarem feitos (daí ter menos pontuação atribuída). Poderá consultar e adaptar o código base das aulas práticas que lhe será dado.  

Código Base Disponível

Terão acesso a todo o código base de árvores binárias, dicionários e recursividade, nomeadamente:

Árvores Binárias

Recursividade

Ao submeter, o Mooshak irá reconhecer e compilar código que use estas classes (também daremos acesso às classes de listas, pilhas e filas que são necessárias para compilar o código de árvores).