Stosy i kolejki - main5.amu.edu.pl

Transkrypt

Stosy i kolejki - main5.amu.edu.pl
Algorytmy i programowanie – 9
Stosy i kolejki
Wykorzystując zaimplementowane procedury i funkcje w stosy.dpr oraz kolejki.dpr wykonać
poniższe zadania.
Stos jest to dynamiczna struktura danych, w której usuwany jest element najpóźniej dodany
stąd nazwa LIFO - last in, first out. Z punktu widzenia implementacji jest to tablica S [1..n] z
dodatkowym parametrem top [S] wskazującym na szczyt stosu.
Kolejka jest to dynamiczna struktura danych, w której usuwany jest element najwcześniej
dodany stąd nazwa FIFO - first in, first out. Z punktu widzenia implementacji jest to tablica
K [1..n] z dwoma parametrami head [K] - wskazującym początek kolejki oraz tail [K] wskazującym na koniec kolejki. W kolejce elementy zdejmowane są oczywiście od początku kolejki.
Zadania
1. Opracować i zaimplementować algorytm scalający dwa posortowane rosnąco ciągi (a1 , a2 , . . . , an )
i (b1 , b2 , . . . , bm ) umieszczone na stosach A i B odpowiednio. Wynik sortowania należy włożyć
na stos C, tak aby ciąg na stosie C był posortowany:
a) malejąco,
b) rosnąco.
2. Opracować algorytm wykorzystujący stos do wyznaczenia przedstawienia binarnego zadanej
liczby n. Przedstawić go w pseudokodzie i zaimplementować w Pascal.
3. Wykorzystując trzy stosy zaimplementować algorytm rekurencyjny ilustrujący rozwiązanie
problemu wież Hanoi.
4. Dodać sygnalizację błędów w implementacji kolejki kolejki.dpr.
5. Opracować i zaimplementować algorytm wyszukiwania zadanego elementu x w kolejce.
Uwaga:
(1) W wyniku działania algorytmu z kolejki nie mogą „zniknąć” elementy, które w niej były
przed uruchomieniem algorytmu.
(2) Należy rozwiązać również problem zapętlenia się algorytmu!