PO Kolekcje wstęp - ćwiczenia: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Janusz (dyskusja | edycje)
Janusz (dyskusja | edycje)
Linia 21: Linia 21:
Popraw trzecią wersję iteratora wbudowanego zaproponowaną na wykładzie tak, by pozwalała na jednoczesne przechodzenie kolekcji uporządkowanej na wiele sposobów.  
Popraw trzecią wersję iteratora wbudowanego zaproponowaną na wykładzie tak, by pozwalała na jednoczesne przechodzenie kolekcji uporządkowanej na wiele sposobów.  


{{Wskazówka|||<div class="mw-collapsible mw-made=collapsible mw-collapsed"><div class="mw-collapsible-content" style="display:none">
{{wskazówka|||<div class="mw-collapsible mw-made=collapsible mw-collapsed"><div class="mw-collapsible-content" style="display:none">
Musisz w tym celu albo wynieść informację o bieżącej pozycji poza kolekcję (co ma swoje wady omawiane na wykładzie), albo pamiętać wewnątrz  kolekcji uporządkowanej kolekcję bieżących pozycji iteratorów. To drugie rozwiązanie wymaga nie tylko dodania dodatkowego parametru do metod iteratora, ale także rozwiązania problemu usuwania z kolekcji bieżących pozycji iteratorów tych pozycji,które odpowiadają już nieużywanym iteratorom. Najprostsze rozwiązanie to oczywiście dodanie metody informującej kolekcję o zakończeniu używania iteratora, ale co zrobić gdy użytkownik zapomni o wywołaniu tej metody? Zaproponuj nieco lepsze rozwiązanie wykorzystujące metodę ''finalize''.
Musisz w tym celu albo wynieść informację o bieżącej pozycji poza kolekcję (co ma swoje wady omawiane na wykładzie), albo pamiętać wewnątrz  kolekcji uporządkowanej kolekcję bieżących pozycji iteratorów. To drugie rozwiązanie wymaga nie tylko dodania dodatkowego parametru do metod iteratora, ale także rozwiązania problemu usuwania z kolekcji bieżących pozycji iteratorów tych pozycji,które odpowiadają już nieużywanym iteratorom. Najprostsze rozwiązanie to oczywiście dodanie metody informującej kolekcję o zakończeniu używania iteratora, ale co zrobić gdy użytkownik zapomni o wywołaniu tej metody? Zaproponuj nieco lepsze rozwiązanie wykorzystujące metodę ''finalize''.
</div>
</div>
</div>}}
</div>}}

Wersja z 19:35, 23 sie 2006

Ćwiczenia do wykładu o kolekcjach

Zad 1.

Zaimplementuj w postaci listy kolekcję uporządkowaną, tzn. taką, w której kolejność elementów wynika z kolejności wstawiania. Kolekcja ta powinna udostępniać następujące operacje:

  • wstaw na początek
  • wstaw na koniec
  • podaj pierwszy element
  • podaj ostatni element
  • podaj liczbę elementów

Kolekcja powinna być sparametryzowana typem elementów.

Zad 2.

Dodaj do kolekcji z zadania 1 trzy wersje iteratora wbudowanego, stworzone zgodnie z propozycjami z wykładu. Jaki jest koszt realizacji operacji dajElt(int i) dla pierwszego z iteratorów?

Zad 3.

Popraw trzecią wersję iteratora wbudowanego zaproponowaną na wykładzie tak, by pozwalała na jednoczesne przechodzenie kolekcji uporządkowanej na wiele sposobów.

Szablon:Wskazówka