ALGORYTMY I STRUKTURY DANYCH
Transkrypt
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH - ćwiczenia Temat 3. Dynamiczne struktury danych i rekursja Pytania kontrolne 1. Omówić listę dwukierunkową i jej reprezentację przy użyciu wskaźników. 2. Przedstawić podstawowe operacje na listach: a) b) c) d) przeszukiwanie listy, włączanie nowego elementu, usuwanie z listy, odwracanie kolejności elementów. 3. Omówić stos i jego reprezentację tablicową. Przedstawić podstawowe operacje na stosie. 4. Omówić kolejkę i jej reprezentację tablicową. Przedstawić podstawowe operacje dla kolejki. 5. Przedstawić algorytm przejścia od zapisu infiksowego na zapis postfiksowy dla prostych wyrażeń. 6. Omówić sposoby przedstawienia listy za pomocą: a) kilku tablic, b) jednej tablicy. 7. Podać definicję i sposoby reprezentacji grafów. 8. Podać definicję i sposoby reprezentacji drzew. 9. Podać rekurencyjną definicję listy i drzewa. Zadania 1. Zaproponować sposób przedstawienia stosu za pomocą listy. Napisać procedury POP i PUSH dla reprezentacji listowej. 2. Zaproponować sposób przedstawienia kolejki za pomocą listy. Napisać procedury ENQUEUE i DEQUEUE dla reprezentacji listowej. 3. Napisać w pseudokodzie algorytm wyznaczania wartości prostych wyrażeń zapisanych w notacji postfiksowej (odwrotny zapis polski). Zakłada się, że wyrażenia zawierają tylko pojedyncze cyfry oraz znaki operacji + i *. Należy wykorzystać stos. 4. Napisać algorytm zliczania elementów w podanej liście: a) bez wykorzystania rekursji, b) z wykorzystaniem rekursji. 5. Rozważyć listy zagnieżdżone, tj. takie, których elementy mogą same być listami. Stosując rekursję napisać algorytm wyznaczający liczbę elementów w liście o dowolnym stopniu zagnieżdżenia. 6. Wieże Hanoi. Stosując rekursję należy zaprogramować przeniesienie n dysków z pręta A na pręt B (lub C). Funkcja powinna zwracać ilość ruchów potrzebnych do wykonania takiej operacji. Wejściem jest liczba dysków n. Powinny przy tym być spełnione następujące warunki: - tylko jeden dysk może być przenoszony równocześnie, - wszystkie dyski mają różne średnice i nigdy dysk większy nie może być położony na mniejszym, - wyjściowym położeniem jest sytuacja na rysunku.