Todo List II.

Práca so spojkovým zoznamom a základnými CRUD operáciami nad ním.

About

Aj vy zvyknete zabúdať? Neviem, ako vy, ale čo si nezapíšem, tak o tom veľmi neviem. V rámci tejto úlohy teda vytvoríte jednoduchú implementáciu todolist-u v jazyku C.

Objectives

  1. Osvojiť si problematiku dynamických štruktúrovaných údajov.
  2. Naučiť sa vytvárať a prehľadávať spájané zoznamy.

Content

Traverse Todo List

Síce sme posledne urobili funkciu print_task(), ktorá vypíše informácie o jednej úlohe, nevieme však zatiaľ vypísať celý zoznam. Vytvoríme preto pomocnú funkciu, ktorá túto funkcionalitu zabezpečí.

Úloha 1.1

Vytvorite pomocnú funkciu print_list(), ktorá vypíše celý zoznam úloh.

Funkcia má jeden parameter:

  • first - referencia na prvú úlohu v zozname.

Funkcia nevracia žiadnu hodnotu. Miesto toho vypíše jednotlivé úlohy na obrazoku.

Update Existing Task

V tomto kroku vytvoríte funkciu, pomocou ktorej budete vedieť aktualizovať existujúcu úlohu v zozname úloh.

Úloha 2.1

Vytvorte funkciu update_task(), pomocou ktorej budete vedieť aktualizovať opis existujúcej úlohy.

Funkcia má tieto parametre:

  • task - referencia na úlohu, ktorú je potrebné aktualizovať,
  • description - nový (resp. aktualizovaný) opis úlohy

Funkcia vráti refernciu na úlohu alebo vráti NULL, ak opis alebo referencia na úlohu sú NULL.

Úloha 2.2

Overte vami vytvorenú funkciu.

Clear Completed Tasks

Po čase sa v zozname úloh začnú jednotlivé úlohy meniť na úlohy, ktoré sú už vybavené (v papierovom prevedení hotové úlohy zvykneme škrtať). V tomto kroku vytvoríte funkciu, ktorá z existujúceho zoznamu odstráni už hotové úlohy.

Úloha 3.1

Vytvorte funkciu clear_completed(), pomocou ktorej budete vedieť zo zoznamu odstrániť všetky už hotové úlohy.

Funkcia má jeden parameter:

  • first - referencia na prvú úlohu v zozname.

Funkcia vráti referenciu na prvú úlohu v zozname alebo NULL, ak zoznam po vyčistení zostane prázdny alebo referencia na first je NULL.

Úloha 3.2

Overte vami vytvorenú funkciu.