Programowanie funkcyjne/Programowanie imperatywne/Ćwiczenia: Różnice pomiędzy wersjami
Linia 40: | Linia 40: | ||
Zaimplementuj drzewa <i>find-union</i>. | Zaimplementuj drzewa <i>find-union</i>. | ||
}} | }} | ||
− | + | ||
− | <div class="mw-collapsible mw-made=collapsible mw-collapsed"> <div class="mw-collapsible-content" style="display:none"> | + | <div class="mw-collapsible mw-made=collapsible mw-collapsed"> |
+ | <span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie</span> | ||
+ | <div class="mw-collapsible-content" style="display:none"> | ||
(* Typ klas elementów typu 'a. *) | (* Typ klas elementów typu 'a. *) | ||
'''type''' 'a set = { | '''type''' 'a set = { | ||
Linia 74: | Linia 76: | ||
'''end''' | '''end''' | ||
'''end''';; | '''end''';; | ||
− | </div></div> | + | </div></div> |
Aktualna wersja na dzień 14:42, 1 cze 2020
Praca domowa
Ćwiczenie [BST]
Zastosuj metodę spaceru do sprawdzenia, czy drzewo jest drzewem BST.
Ćwiczenie [Append]
Zaimplementuj modyfikowalne listy i procedurę append, która modyfikuje daną listę przez dołączenie na jej końcu innej listy. Dołączana lista jest przy tym niszczona. Procedura append powinna działać w stałym czasie. (Lista powinna zawierać referencje do obu jej końców).
Ćwiczenie [Odwracanie listy]
Napisz procedurę, która odwraca zadaną listę modyfikowalną. Dwukrotne odwrócenie powinno dawać listę tożsamą z początkową. Należy to zrobić w stałej pamięci dodatkowej i liniowym czasie.
Ćwiczenia
Ćwiczenie [Listy cykliczne]
Zaimplementuj cykliczne listy modyfikowalne.
Ćwiczenie [Wykrywanie cykli]
Napisz procedurę sprawdzającą, czy dana lista zawiera cykl. Można to zrobić w stałej pamięci i liniowym czasie (i to na kilka sposobów!).
Laboratorium
Ćwiczenie [FIFO]
Zaimplementuj imperatywną kolejkę FIFO.
Ćwiczenie [Kolejki dwustronne]
Zaimplementuj imperatywne kolejki dwustronne z dodatkowymi operacjami odwracania i sklejania kolejek. Wszystkie operacje powinny działać w czasie stałym.
Ćwiczenie [Find-union]
Zaimplementuj drzewa find-union.
Rozwiązanie