Ultima modifica:
Per implementare contains devi scorrere la lista e restituire true quando trovi l'elemento richiesto, altrimenti (se hai finito di scorrere la lista senza mai restituire true) restituisci false.
L'implementazione di size è ancora più semplice. Devi scorrere la lista esattamente come ti ho fatto vedere per contains, incrementando una variabile. Prova ad implementarlo da solo, non penso che avrai problemi.
Quello un po' più complicato è delete, perché devi trovare il predecessore dell'elemento da cancellare e cambiargli il successore. Non ho modo di testare, però dovrebbe essere una roba del genere:
Java:
public boolean contains(int value) {
for (MyIntegerListElement elt = this.head; elt != null; elt = elt.getNext()) {
if (elt.getValue() == value) return true;
}
return false;
}
L'implementazione di size è ancora più semplice. Devi scorrere la lista esattamente come ti ho fatto vedere per contains, incrementando una variabile. Prova ad implementarlo da solo, non penso che avrai problemi.
Quello un po' più complicato è delete, perché devi trovare il predecessore dell'elemento da cancellare e cambiargli il successore. Non ho modo di testare, però dovrebbe essere una roba del genere:
Java:
public bool delete(int value) {
MyIntegerListElement pred = null;
MyIntegerListElement curr = null;
for (curr = this.head; curr != null; curr = elt.getNext()) {
if (curr.getValue() == value) break;
pred = curr;
}
if (curr == null) return false; // l'elemento da cancellare non esiste
if (pred == null) this.head = curr.getNext(); // l'elemento da cancellare è la testa
else pred.setNext(curr.getNext()); // l'elemento da cancellare è al centro
return true;
}