am o mica problema de noob :”>
adica nu prea inteleg cum vine chestia cu iteratorii.
mi se da o lista inlantuita si lista dispune de un iterator it = list.getIterator() care la randul sau are functiile hasNext() si next().
eu parcurgeam listele inlantuite cu p -> next (c++) sau p^.next (pascal). in cazul acesta cand am un iterator cum le parcurg? sau la ce ajuta iteratorul?
Un iterator este un obiect folosit pentru a parcurge un container.
El te ajuta sa implementezi diverse operatii (si diversi algoritmi) pe un container fara sa te intereseze reprezentarea interna a containerului.
Poate fi privit drept o abstractie de pointer.
In privinta exemplului tau, ar fi bine sa post-ezi codul. Din ceea ce spui nu e o implementare standard (complaint STL) de iterator.
pai nu am niciun cod. acela era enuntul problemei si nu stiam folosi iteratorul.
eu foloseam pana acum p=prim; si apoi while p->next != 0….
enuntul problemei e asa:
Se da o lista inlantuita cu 2n+1 elemente. Lista dispune de iterator, Iterator it = list.getIterator(), care la randul sau are functiile hasNext() si next(). Gasiti elementul din mijloc (adica n+1).
teoretic stiu cum sa o fac, cu metoda iepurelui si a testoasei.
si din cate am inteles next() ne da urmatorul element si hasNext() verifica daca exista urmatorul element.
as avea ceva de genul urmator? ca dupa cum arata mi se pare cam ciudat.
Iterator it = list.getIterator();
t = it.begin;
r = it.begin;
while (r.hasNext() == 0)
{
t = t.next();
r = r.next().next();
}