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!