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.