Programowanie funkcyjne/Programowanie imperatywne/Ćwiczenia: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
|||
Linia 1: | Linia 1: | ||
== Praca domowa == | |||
* Zastosuj metodę spaceru do sprawdzenia, czy drzewo jest drzewem BST. | |||
* Zaimplementuj modyfikowalne listy i procedurę <tt>append</tt>, która modyfikuje daną listę przez dołączenie na jej końcu innej listy. Dołączana lista jest przy tym niszczona. Procedura <tt>append</tt> powinna działać w stałym czasie. (Lista powinna zawierać referencje do obu jej końców.) | |||
* 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== | ==Ćwiczenia== | ||
* Zaimplementuj modyfikowalne | * Zaimplementuj cykliczne listy modyfikowalne. | ||
* Zaimplementuj imperatywną kolejkę FIFO. | * Zaimplementuj imperatywną kolejkę FIFO. | ||
* 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!). | |||
* 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) |
Wersja z 17:33, 26 wrz 2006
Praca domowa
- Zastosuj metodę spaceru do sprawdzenia, czy drzewo jest drzewem BST.
- 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.)
- 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
- Zaimplementuj cykliczne listy modyfikowalne.
- Zaimplementuj imperatywną kolejkę FIFO.
- 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!).