Para efeitos da nota atribuida à resolução de exercícios ao longo do semestre - Submeter até 23:59 de 22 de Maio
(o problema continuará depois disponível para submissão, mas sem contar para a nota)
[para perceber o contexto do problema deve ler o guião da aula #09]


[ED236] Métodos para Listas Ligadas Simples

Neste problema deverá apenas submeter uma classe SinglyLinkedList<T> (e não um programa completo).


Código Base

Use como base a classe SinglyLinkedList<T> (ver código | download de Node.Java e SinglyLinkedList.Java), que representa uma lista ligada simples e tem disponíveis métodos para adicionar ou remover um elemento no início ou no final, devolver o tamanho, saber se a lista está vazia ou retornar representação em string para escrita (tal como dado nas aulas).

Métodos a Implementar

Deve acrescentar à classe dada os seguintes métodos (não modificando nenhum dos métodos já existentes no código base):

Notas

 

Exemplos de Input/Output para o método cut

Lista inicial Chamada O que deve ser devolvido
list = {2,4,6,8,10} list.cut(2,3) new_list = {6,8}
list = {2,4,6,8,10} list.cut(0,2) new_list = {2,4,6}
list = {'a','b','c','d'} list.cut(1,1) new_list = {'b'}
list = {"estruturas","de","dados","e","muito","fixe"} list.cut(0,5) new_list = {"estruturas","de","dados","e","muito","fixe"}
list = {0,1,2,3,4,5,6,7,8} list.cut(1,7) new_list = {1,2,3,4,5,6,7}

 

Exemplos de Input/Output para o método shift

Lista inicial   Chamada   Estado da lista depois da chamada
list = {'a','b','c','d','e'} list.shift(2) list = {'d','e','a','b','c'}
list = {'a','b','c','d','e'} list.shift(4) list = {'b','c','d','e','a'}
list = {1,2,42} list.shift(0) list = {1,2,42}
list = {"ola","mundo","cruel"} list.shift(1) list = {"cruel","ola","mundo"}

 


Estruturas de Dados (CC1007)
DCC/FCUP - Faculdade de Ciências da Universidade do Porto