OLÁ AMIGOS, TENHO QUE FAZER UM TRABALHO CUJO ENUNCIADO SE ENCONTRA ABAIXO, O PROBLEMA É QUE NÃO SEI NADA DE JAVA E O LIVRO QUE COMPREI (JAVA COMO PROGRAMAR) NÃO ESTÁ ME AJUDANDO MUITO. SE ALGUÉM PUDER ME AJUDAR NÃO RESOLVENDO O TRABALHO MAS ME ORIENTANDO EU APRECIARIA MUITO:
O tipo abstrato de dados LR de lista linear de itens definido pelas seguintes opera¸c˜oes:
-
LR()
Opera¸c˜ao tipo construtor para iniciar objetos do tipo LR, criando uma lista vazia. -
boolean pesquisa(String c)
z.pesquisa© pesquisa pelo item armazenado em z cuja chave seja c e informa se o encontrou ou n˜ao.
Ap´os a pesquisa, o objeto z identifica o item encontrado como sendo o item corrente do objeto. Se n˜ao
encontrou, a posi¸c˜ao corrente deve ficar inalterada. -
void insereAntes(Item x)
z.insereaAntes(x)insere item x na lista armazenada por z antes do item corrente de z. Se a lista
estiver vazia, insere-o no in´ıcio da lista. O item inserido sempre torna-se o item corrente da lista. Esta
opera¸c˜ao deve ter custo O(1) no pior caso. -
void insereDepois(Item x)
z.insereDepois(x)insere item x na lista armazenada por z depois do item corrente de z. Se a lista
estiver vazia, insere-o no in´ıcio da lista. O item inserido sempre torna-se o item corrente da lista. Esta
opera¸c˜ao deve ter custo O(1) no pior caso. -
Item remove( )
z.remove( )remove e retorna o item que ocupa a posi¸c˜ao corrente da lista armazenada em z. O item
sucessor do que foi removido torna-se o nodo corrente. Esta opera¸c˜ao deve ter custo O(1) no pior caso. -
Item corrente(i:integer)
z.corrente(i)torna o i-´esimo nodo da lista, caso exista, o nodo corrente de z. -
boolean vazia( )
z.vazia( )informa se a lista z ´e vazia.
Pedem-se:
- Implementar em Java, o tipo abstrato de dados LR, com pelo menos as opera¸c˜oes descritas acima. O tipo
de dados Item pode ser qualquer um que tenha um campo chave do tipo String… - Considere uma lista circular duplamente encadeada, com a no¸c˜ao de posi¸c˜ao corrente, a partir da qual
os apontadores permitem iniciar um caminhamento em qualquer dire¸c˜ao. - Inventar e implementar um programa de teste que demonstre o bom funcionamento das opera¸c˜oes acima.
- Entregar a documenta¸c˜ao do programa, descrevendo sua solu¸c˜ao, apresentando necess´ariamente a fun¸c˜ao
de custo de cada uma das opera¸c˜oes e a listagem do programa, dos dados de entrada e sa´ıda, mostrando
sua execu¸c˜ao. - A descri¸c˜ao da solu¸c˜ao deve permitir seu entendimento sem que o leitor tenha que fazer um escrut´ınio
do c´odigo que vocˆe implementou.
