Programowanie funkcyjne/Programowanie imperatywne/Ćwiczenia: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Przemek (dyskusja | edycje)
Nie podano opisu zmian
 
Kubica (dyskusja | edycje)
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 listy i procedurę <tt>append</tt>, która modyfikuje daną*;listę przez dołączenie na jej końcu innej listy. Lista powinna zawierać referencje do obu jej końców. 
* Zaimplementuj cykliczne listy modyfikowalne.  
* Napisz procedurę definiującą cykliczną listę modyfikowalną.  
* Zaimplementuj imperatywną kolejkę FIFO.
* Zaimplementuj imperatywną kolejkę FIFO.
* Zastosuj metodę spaceru do sprawdzenia, czy drzewo jest drzewem BST.
* 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ę, która odwraca zadaną listę imperatywną i jej wynikiem jest odwrócona lista. Podwójne odwrócenie powinno dawać listę ''tożsamą'' z początkową. Należy to zrobić w stałej pamięci i czasie liniowym.
* 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!).