Utilizarea și programarea calculatoarelor 2 - Laborator 9
Exerciții scurte
Pentru execrițiile de mai jos puteți folosi ca punct de plecare
arborele construit la laboratorul anterior.
Scrieți un program care numără nodurile dintr-un arbore binar.
- folosind un contor global incrementat la vizitarea fiecărui nod
- efectuând întâi recursiv calculul pentru fiecare subarbore
Scrieți un program care afișează fiecare nod dintr-un arbore, împreună
cu adâncimea la care se află:
- folosind o variabilă globală incrementată și decrementată corespunzător
- transmițând adâncimea curentă ca parametru suplimentar la procedura
de vizitare
Scrieți o funcție care determină dacă un arbore binar e echilibrat sau nu.
Un arbore binar se numește echilibrat dacă este fie vid, fie cei doi subarbori
ai săi sunt echilibrați și diferența între adâncimile lor e cel mult 1.
Problemă
Tipăriți în mod grafic arborele binar construit la laboratorul trecut,
după exemplul din figura următoare (pornind în adâncime de la stânga la
dreapta și cu câte un nod pe fiecare linie).
|-15-|
| | |-21-|
| | | | |-26
| | | |-27-|
| |-35-|
| | |-36
| | |-40-|
| |-49-|
| | |-59
| |-62-|
| |-63-|
| |-72
|-77-|
-83-|
|-86-|
| |-90
| |-92-|
|-93-
Pentru început, tipăriți fiecare nod precedat de un număr de spații
proporțional cu adâncimea.
Opțional, pentru a realiza legăturile (liniile verticale), țineți minte
un tablou cu direcția parcursă (stânga sau dreapta) pe fiecare nivel până
la nodul curent. Tipăriți un caracter | pe fiecare nivel corespunzând
sfârșitului unui segment de direcții identice (de exemplu, pe linia cu nodul
59, parcurs cu LLRRRL se trag bare după 2 nivele, apoi încă 3,
apoi încă unul.
Marius Minea
Last modified: Mon Apr 26 07:40:24 EEST 2004