background image

Algorytmy i struktury danych 

Zagadnienia do ćwiczeń 

 

1.  Konstruowanie algorytmów i ich zapis za pomocą: 

a.  opisu słownego, 
b.  schematu blokowego 
c.  pseudokodu 

2.  Ocena złożoności czasowej algorytmów za pomocą O-notacji (na poziomie idei algorytmu, zapisu za pomocą schematu i 

pseudokodu). 

3.  Analiza metod sortowania (w tym sortowanie stogowe przy zapisie danych w postaci drzewa i w tablicy). 
4.  Analiza metod wyszukiwania (liniowe, połówkowe, haszowanie). 
5.  Operacje na listach w reprezentacji ze wskaźnikami osadzonymi i w reprezentacji tablicowej (Front, Push, Pop, Rear, 

Inject, Eject). 

6.  Przykłady zastosowania stosu (m. in. Notacja Polska i ONP). 
7.  Przykłady zastosowania kolejki (np. sortowanie plików sekwencyjnych). 
8.  Przykłady i reprezentacja grafów (wskaźniki, skorowidze, mapy bitów, macierze sąsiedztwa). 
9.  Zastosowania grafów (np. sterowanie w automacie skończonym, maszynie Turinga). 
10. Rodzaje i reprezentacja drzew (wskaźniki, tablice, uporządkowanie lewolistowe). 
11. Zastosowanie drzew (np. drzewo rozbioru gramatycznego wyrażeń arytmetycznych, drzewa BST w sortowaniu i 

wyszukiwaniu). 

12. Znajdowanie minimalnego drzewa rozpinającego algorytmami Prima i Kruskala. 
13. Generowanie kodu Huffmana algorytmem zachłannym z wykorzystaniem drzewa. 
14. Znajdowanie cyklu Eulera w grafach. 
15. Znajdowanie cyklu Hamiltona w grafach. 
16. Znajdowanie najkrótszej ścieżki w grafach (porównanie algorytmu zachłannego z programowaniem dynamicznym). 
17. Analiza problemu komiwojażera. 
18. Zalety i wady rekurencji na przykładzie algorytmów (porównanie algorytmów rekurencyjnych i iteracyjnych): 

a.  silnia, 
b.  liczby Fibonacchiego, 
c.  wieże Hamoi. 

19. Algorytmy tworzenia trójkąta Sierpińskiego i innych fraktali.