Sunteți pe pagina 1din 1

Lucrările de laborator nr.4 si nr.

5 la SDA
pentru studenţii an. 1, FCIM, UTM

Tema: Implementarea tipului de date abstract “Arbore binar geniralizat” in limbajul C. Algoritmi
iterativi si algoritmi recursivi.

Scopul lucrării: Obținerea deprinderilor de implementare practice in limbajul C a tipului de date


abstract (TDA) “Arbore binar geniralizat” utilizînd algoritmi iterativi si recursivi.

Sarcina de lucru: De scris trei fișiere-text în limbajul C pentru implementarea si utilizarea TDA
“Arbore binar geniralizat ”:
1. Fișierul antet arbore.h care conține: a) specificația structurei nodului al arborelui binar (conform
variantei din lucrarea de laborator nr.1) și b) prototipurile funcțiilor care asigură operațiunile de
prelucrare a arborelui binar geniralizat.
Pentru lucrarea de laborator nr.4 în acest fișier trebuie de adaugat specificațiile structurilor
elementelor cozei și stivei unde vor fi stocate adresele nodurilor ale arborelui binar, precum și
prototipurile funcțiilor de inserare și eliminare a elimentului pentru coada și stiva.
2. Fisierul arbore.cpp sau arbore.c care conține codurile (implementările) tuturor funcțiilor
declarate în fișierul antet.
3. Fișierul utilizatorului lab4_5.cpp sau lab4-5.c care reprezintă programul cu funcţia main( )
pentru prelucrarea arborelui binar geniralizat cu afișarea meniului de optiuni pe ecran, si anume:
crearea arborelui binar geniralizat în memoria dinamică împreună cu introducerea informației
nodurilor arborelui de la tastatură în regim interactiv, afișarea informatiei despre nodurile arborelui
pe ecran (precum și afișarea adreselor nodului current, copilului stîng și copilului drept al acestora),
căutarea nodului după unui cîmp informațional al nodului, determinarea numărului de noduri în
arbore, determinarea înalțimei a arborelui, eliberarea memoriei dinamice alocate pentru arbore,
ieșire din program.

În lucrarea de laborator nr.4 funcțiile de prelucrare ale arborelui binar trebuie implementate
folosind algoritmi iterativi în 2 versiuni:
a) utilizînd coada - pentru parcurgerea arborelui în largime (parcurgerea arborelui pe niveluri) și
b) utilizînd stiva – pentru parcurgerea arborelui în adîncime (parcurgerea inordine: rădăcină ->
subarbore stîng(drept) -> subarbore drept(stîng). O excepție face funcția de eliberare a memoriei
dinamice alocate pentru arbore ( trebuie folosită parcurgerea postordine: subarbore stîng(drept) ->
subarbore drept(stîng) -> rădăcină).

În lucrarea de laborator nr.5 funcțiile de prelucrare ale arborelui binar trebuie implementate
folosind algoritmi recursivi pentru parcurgerea arborelui în adîncime: rădăcină -> subarbore
stîng(drept) -> subarbore drept(stîng). Și aici o excepție face funcția de eliberare a memoriei
dinamice alocate pentru arbore (trebuie folosită parcurgerea postordine: subarbore stîng(drept) ->
subarbore drept(stîng) -> rădăcină).
În lucrarea de laborator nr.5 funcția de afișare a informaței despre nodurile arborelui pe ecran,
precum și a adreselor nodului current, copilului sting și copilului drept al acestora, trebuie
impementată pentru toate parcurgerile recursive posibile ale arborelui binar.

Actualizat 29.01.2018 dr., conf. univ. M.Kulev

S-ar putea să vă placă și