Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.
Ambele părți revizuirea anterioară Versiuni anterioare Urmatoarea versiune | Versiuni anterioare Urmatoarea versiune Ambele părți următoarea reviziune | ||
laboratoare:laborator-04 [2017/03/10 02:02] mihai.iacov [Noţiuni introductive] |
laboratoare:laborator-04 [2017/03/12 22:05] mihai.iacov [5 Exerciții] |
||
---|---|---|---|
Linia 19: | Linia 19: | ||
===Copil - Părinte(Child - Parent)=== | ===Copil - Părinte(Child - Parent)=== | ||
- | Nodul P este părintele nodului C dacă are legătură către C. | + | Nodul P este părintele nodului C dacă are legătură către C(similar, C este copilul lui P). |
+ | * Pot apărea şi alţi termeni pentru relaţia dintre noduri: fraţi(siblings), | ||
<note tip> | <note tip> | ||
- | ===Frunză(Leaf)=== | + | ===Gradul(Degree)=== |
- | Numim frunză un nod fără copii(**nod terminal**). | + | Gradul unui nod este egal cu numărul de copii ai acestuia. |
+ | |||
+ | ===Frunză(Leaf) şi nod intern/ | ||
+ | Numim frunză un nod fără copii(**nod terminal**). | ||
+ | * Frunzele se mai numesc **noduri externe**. | ||
+ | * Nodurile care au copii se mai numesc **noduri interne**. | ||
===Urmaş(Descendant)=== | ===Urmaş(Descendant)=== | ||
Linia 67: | Linia 74: | ||
{{ : | {{ : | ||
# poza arbore#}} | # poza arbore#}} | ||
+ | |||
+ | ====Alte noţiuni introductive==== | ||
+ | ===Arbore binar plin=== | ||
+ | Un arbore binar este plin dacă nu există niciun nod intern la care mai putem lega un nod-copil nou(Toate nodurile, în afară de frunze, au număr maxim de copii). | ||
+ | |||
+ | ===Arbore binar complet=== | ||
+ | Un arbore binar este complet dacă fiecare nivel(**cu posibila excepţie a ultimului**) este complet ocupat. | ||
+ | |||
+ | ===Arbore binar perfect=== | ||
+ | Un arbore binar este perfect dacă este complet ocupat pe fiecare nivel(fără excepţii). | ||
+ | |||
+ | <note important> | ||
+ | |||
====2.2 Reprezentare==== | ====2.2 Reprezentare==== | ||
Linia 218: | Linia 238: | ||
=====5 Exerciții==== | =====5 Exerciții==== | ||
- | - Să se realizeze stocul unei farmacii, | + | - Se dă un vector cu n întregi. Scrieţi o funcţie care să creeze un arbore binar de căutare cu valorile din vector. |
- | Evidența medicamentelor se ține cu un program care are drept structură de date un arbore de căutare după nume medicament. | + | - Se dă un arbore binar ce stochează întregi. Scrieţi o funcţie care verifică dacă arborele este binar de căutare. |
+ | - Se dă un arbore binar de căutare ce stochează | ||
+ | - Acelaşi arbore – inserare(şi să rămână arbore de căutare) | ||
+ | - Acelaşi arbore – ştergere(şi să rămână arbore de căutare) | ||
+ | |||
+ | Puteţi testa primele 5 exerciţii în acelaşi program. | ||
+ | |||
+ | ===Problemă întreagă=== | ||
+ | * Să se realizeze stocul unei farmacii, | ||
+ | |||
+ | Evidența medicamentelor se ține cu un program care are drept structură de date un arbore de căutare după nume medicament. | ||
Să se scrie programul care execută următoarele operații: | Să se scrie programul care execută următoarele operații: | ||
*Creează arborele de căutare | *Creează arborele de căutare | ||
Linia 225: | Linia 255: | ||
*Tipăreste medicamentele în ordine lexicografică | *Tipăreste medicamentele în ordine lexicografică | ||
*Elimină un nod identificat prin nume medicament | *Elimină un nod identificat prin nume medicament | ||
- | *Creează un arbore de căutare cu medicamentele care au data de expirare mai meche decât o dată specificată de la terminal | + | *Creează un arbore de căutare cu medicamentele care au data de expirare mai " |
- | *Determinați greutatea arborelui și verificați dacă este binar complet sau nu | + | *Determinați greutatea(fie greutatea = numărul de frunze) |