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).
Acrescente à classe dada um novo método public int count(T value) que conta e devolve o número de ocorrências do valor value na lista. Note que para comparar os elementos deverá usar o método equals e não um simples == (pode assumir que os objectos da lista têm implementada uma versão correcta do equals).
Deverá submeter apenas a classe SinglyLinkedList<T>, acrescentando o método count como pedido (e sem apagar nenhum dos outros métodos dados como base). Pode assumir que terá acesso no Mooshak à classe Node<T> (não a pode mudar) e se precisar pode criar outros métodos auxiliares. O Mooshak irá criar várias instâncias da sua classe e irá fazer uma série de testes ao método por si implementado.
Lista inicial | Chamada | Valor de retorno |
---|---|---|
list = {42,200,42,9999,42,200,42} | list.count(42) | 4 |
list = {42,200,42,9999,42,200,42} | list.count(200) | 2 |
list = {42,200,42,9999,42,200,42} | list.count(9999) | 1 |
list = {42,200,42,9999,42,200,42} | list.count(1) | 0 |
list = {"cc","cc","cc","cc","cc"} | list.count("cc") | 5 |
Última actualização: