Neste problema deverá apenas submeter uma classe SinglyLinkedList<T> (e não um programa completo).
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).
Deve acrescentar à classe dada os seguintes métodos (não modificando nenhum dos métodos já existentes no código base):
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} |
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