[ED236] Métodos para Listas Ligadas Simples

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


[PROBLEMAS PARA DOWNLOAD] Para precaver uma possível intermitência na ligação de internet, podem e devem fazer download de todos os problemas em:
https://mooshak.dcc.fc.up.pt/~edados/teste_parte1/NUM_MECANOGRAFICO.zip (onde NUM_MECANOGRAFICO deve ser substituido pelo vosso número mecanográfico)


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"}

 


Teste Prático de Estruturas de Dados (CC1007)
8 de Junho de 2020