Transforme a classe em uma lista encadeada circular. Mantenha a política de inserção e remoção de elementos.
Faça comentários no código sobre os novos métodos e atributos criados.
Implemente um método que inclua um elemento no meio da lista (exatamente entre os elementos no meio da lista).
Você deve implementar o método printAll que mostra todos os elementos da lista em sequência, começando no primeiro elemento e terminando no último.
Codigo disponibilizado
public class ListaAvaliacao {
private Nodo head;
private Nodo tail;
private class Nodo {
Integer dado;
Nodo proximo;
}
public ListaAvaliacao() {
this.head = null;
this.tail = null;
}
public void inserir(int valor) {
Nodo novo = new Nodo();
novo.dado = valor;
if(head == null) {
novo.proximo = head;
head = novo;
tail = head;
} else {
novo.proximo = head;
head = novo;
}
}
public Integer remover() {
if (this.head == null) return null;
Nodo retirado = this.tail;
if (this.head == this.tail)
this.head = this.tail = null;
else {
Nodo temp = this.head;
while (temp.proximo != this.tail) {
temp = temp.proximo;
}
this.tail = temp;
temp.proximo = null;
}
return retirado.dado;
}
public void printAll() {
// TODO: Apresentar todos os elementos na ordem que aparecem, do início ao final
}
}