85
Arbori binari SD 2019/2020

Arbori binari...Arbori: terminologie I r adacina: nodul f ar a p arinte. I nod intern: nod cu cel put, in un u. I nod extern (frunz a): nod f ar a i. I descendent, iiunui nod: i, nepot,

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

  • Arbori binari

    SD 2019/2020

  • Conţinut

    Arbori

    Arbori binari (ArbBin)

    Aplicat, ie: reprezentarea expresiilor ca arbori

    FII, UAIC Curs 5 SD 2019/2020 2 / 37

  • Arbori: terminologie

    I rădacina: nodul fără părinte.

    I nod intern: nod cu cel put, in un fiu.

    I nod extern (frunză): nod fără fii.

    I descendent, ii unui nod: fii, nepot, i, etc.

    I frat, i: toate celelalte noduri avândacelas, i părinte.

    I subarbore: arborele format dintr-unnod s, i descendent, ii săi.

    subarbore

    A

    B C D

    E F G H

    I J K

    FII, UAIC Curs 5 SD 2019/2020 4 / 37

  • Arbori: terminologie

    I adâncimea uni nod x :

    adâncime(x) =

    {0, x este rădăcina,1 + adâncime(părinte(x)), ı̂n caz contrar.

    I ı̂nălt, imea unui arbore:adâncimea maximă a nodurilorarborelui.

    I ı̂nălt, imea unui nod: distant,a dela nod la cel mai depărtatdescendent al său.

    A

    B C D

    E F G H

    I J K

    0 –

    1 –

    2 –

    3 –

    FII, UAIC Curs 5 SD 2019/2020 5 / 37

  • Conţinut

    Arbori

    Arbori binari (ArbBin)

    Aplicat, ie: reprezentarea expresiilor ca arbori

    FII, UAIC Curs 5 SD 2019/2020 6 / 37

  • Tipul abstract ArbBin

    Obiecte: arbori binari.

    Un arbore binar este o colect, ie de noduri cu proprietăt, ile:

    I orice nod are 0, 1 sau 2 succesori (fii, copii).

    I orice nod, exceptând unul singur — rădăcina — are un singur nodpredecesor (tată, părinte).

    I rădăcina nu are predecesori.

    I fii sunt ordonat, i: fiul stâng, fiul drept. Dacă un nod are un singur fiu,atunci trebuie ment, ionat care.

    I nodurile fără fii formează frontiera arborelui.

    FII, UAIC Curs 5 SD 2019/2020 7 / 37

  • Arbori binari: exemplu

    C

    E G

    K A M D

    B L F I

    H

    rădăcina

    fiu stâng fiu drept

    subarbore stâng

    FII, UAIC Curs 5 SD 2019/2020 8 / 37

  • Arbori binari: exemplu

    C

    E G

    K A M D

    B L F I

    H

    rădăcina

    fiu stâng fiu drept

    subarbore stâng

    FII, UAIC Curs 5 SD 2019/2020 8 / 37

  • Arbori binari: exemplu

    C

    E G

    K A M D

    B L F I

    H

    rădăcina

    fiu stâng fiu drept

    subarbore stâng

    FII, UAIC Curs 5 SD 2019/2020 8 / 37

  • Arbori binari: definit, ie recursivă

    I Arborele vid (fără nici un nod) este arbore binar.

    I Daca v este un nod s, i t1 s, i t2 sunt arbori binari, atunci arborele careare pe v ca rădăcină, t1 subarbore stâng al rădăcinii s, i t2 subarboredrept al rădăcinii este arbore binar.

    t1 t2

    v

    FII, UAIC Curs 5 SD 2019/2020 9 / 37

  • Arbori binari: proprietăt, i

    Notat, ii:

    I n – numărul de noduri din arbore.

    I ne – numărul de noduri externe.

    I ni – numărul de noduri interne.

    I h – ı̂nălt, imea arborelui.

    h + 1 ≤ n ≤ 2h+1 − 1; log2 (n + 1)− 1 ≤ h ≤ n − 1

    1 ≤ ne ≤ 2h; h ≤ ni ≤ 2h − 1

    FII, UAIC Curs 5 SD 2019/2020 10 / 37

  • Arbori binari: proprietăt, i

    I Arbore propriu: fiecare nod intern are exact doi fii.

    2h + 1 ≤ n ≤ 2h+1 − 1;log2 (n + 1) − 1 ≤ h ≤ (n − 1)/2h + 1 ≤ ne ≤ 2h;h ≤ ni ≤ 2h − 1ne = ni + 1

    I Arbore complet: arbore propriu ı̂n care frunzele au aceeaşi adâncime.

    nivelul i are 2i noduri;n = 2h+1 − 1 = 2ne − 1

    FII, UAIC Curs 5 SD 2019/2020 11 / 37

  • ArbBin – operat, ii

    insereaza()

    I intrare:– un arbore binar t;– adresa unui nod cu cel mult un fiu (tatăl noului nod);– tipul fiului adăgat (stânga, dreapta);– informaţia e din noul nod.

    I ies, ire:– arborele t la care s-a adăugat un nod ce memorează e;

    noul nod nu are fii.

    FII, UAIC Curs 5 SD 2019/2020 12 / 37

  • ArbBin: inserare - exemplu

    C

    E G

    K A M D

    B L F I

    Hinserează X ca fiu stâng a lui K

    X

    inserează Y ca fiu drept a lui LY

    FII, UAIC Curs 5 SD 2019/2020 13 / 37

  • ArbBin: inserare - exemplu

    C

    E G

    K A M D

    B L F I

    Hinserează X ca fiu stâng a lui K

    X

    inserează Y ca fiu drept a lui LY

    FII, UAIC Curs 5 SD 2019/2020 13 / 37

  • ArbBin: inserare - exemplu

    C

    E G

    K A M D

    B L F I

    Hinserează X ca fiu stâng a lui K

    X

    inserează Y ca fiu drept a lui L

    Y

    FII, UAIC Curs 5 SD 2019/2020 13 / 37

  • ArbBin: inserare - exemplu

    C

    E G

    K A M D

    B L F I

    Hinserează X ca fiu stâng a lui K

    X

    inserează Y ca fiu drept a lui LY

    FII, UAIC Curs 5 SD 2019/2020 13 / 37

  • ArbBin – operat, ii

    elimina()

    I intrare:– un arbore binar t;– adresa unui nod fără fii şi adresa nodului părinte.

    I ies, ire:– arborele t din care s-a eliminat nodul dat

    (de pe frontieră).

    FII, UAIC Curs 5 SD 2019/2020 14 / 37

  • ArbBin: eliminare - exemplu

    C

    E G

    K A M D

    B L F I

    H

    FII, UAIC Curs 5 SD 2019/2020 15 / 37

  • ArbBin: eliminare - exemplu

    C

    E G

    K A M D

    B F I

    H

    FII, UAIC Curs 5 SD 2019/2020 16 / 37

  • ArbBin: eliminare - exemplu

    C

    E G

    K A M D

    B F I

    H

    FII, UAIC Curs 5 SD 2019/2020 17 / 37

  • ArbBin – parcurgerea preordine

    parcurgerePreordine()

    I intrare:– un arbore binar t;– o procedură viziteaza().

    I ies, ire:– arborele t, dar cu nodurile procesate cu viziteaza() ı̂n ordinea

    * (R) – rădăcina* (S) – subarborele stânga* (D) – subarborele dreapta

    FII, UAIC Curs 5 SD 2019/2020 18 / 37

  • Parcurgere preordine - exemplu

    C

    E G

    K A M D

    B L F I

    H

    C

    C

    E

    E

    K

    K

    B

    B

    HH

    A

    A

    L

    L

    F

    F

    G

    G

    M

    M

    D

    D

    I

    I

    FII, UAIC Curs 5 SD 2019/2020 19 / 37

  • Parcurgere preordine - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    K

    K

    B

    B

    HH

    A

    A

    L

    L

    F

    F

    G

    G

    M

    M

    D

    D

    I

    I

    FII, UAIC Curs 5 SD 2019/2020 19 / 37

  • Parcurgere preordine - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    K

    K

    B

    B

    HH

    A

    A

    L

    L

    F

    F

    G

    G

    M

    M

    D

    D

    I

    I

    FII, UAIC Curs 5 SD 2019/2020 19 / 37

  • Parcurgere preordine - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    K

    K

    B

    B

    HH

    A

    A

    L

    L

    F

    F

    G

    G

    M

    M

    D

    D

    I

    I

    FII, UAIC Curs 5 SD 2019/2020 19 / 37

  • Parcurgere preordine - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    K

    K

    B

    B

    HH

    A

    A

    L

    L

    F

    F

    G

    G

    M

    M

    D

    D

    I

    I

    FII, UAIC Curs 5 SD 2019/2020 19 / 37

  • Parcurgere preordine - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    K

    K

    B

    B

    HH

    A

    A

    L

    L

    F

    F

    G

    G

    M

    M

    D

    D

    I

    I

    FII, UAIC Curs 5 SD 2019/2020 19 / 37

  • Parcurgere preordine - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    K

    K

    B

    B

    HH

    A

    A

    L

    L

    F

    F

    G

    G

    M

    M

    D

    D

    I

    I

    FII, UAIC Curs 5 SD 2019/2020 19 / 37

  • Parcurgere preordine - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    K

    K

    B

    B

    HH

    A

    A

    L

    L

    F

    F

    G

    G

    M

    M

    D

    D

    I

    I

    FII, UAIC Curs 5 SD 2019/2020 19 / 37

  • Parcurgere preordine - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    K

    K

    B

    B

    HH

    A

    A

    L

    L

    F

    F

    G

    G

    M

    M

    D

    D

    I

    I

    FII, UAIC Curs 5 SD 2019/2020 19 / 37

  • Parcurgere preordine - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    K

    K

    B

    B

    HH

    A

    A

    L

    L

    F

    F

    G

    G

    M

    M

    D

    D

    I

    I

    FII, UAIC Curs 5 SD 2019/2020 19 / 37

  • Parcurgere preordine - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    K

    K

    B

    B

    HH

    A

    A

    L

    L

    F

    F

    G

    G

    M

    M

    D

    D

    I

    I

    FII, UAIC Curs 5 SD 2019/2020 19 / 37

  • Parcurgere preordine - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    K

    K

    B

    B

    HH

    A

    A

    L

    L

    F

    F

    G

    G

    M

    M

    D

    D

    I

    I

    FII, UAIC Curs 5 SD 2019/2020 19 / 37

  • Parcurgere preordine - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    K

    K

    B

    B

    HH

    A

    A

    L

    L

    F

    F

    G

    G

    M

    M

    D

    D

    I

    I

    FII, UAIC Curs 5 SD 2019/2020 19 / 37

  • ArbBin – parcurgerea inordine

    parcurgereInordine()

    I intrare:– un arbore binar t;– o procedură viziteaza().

    I ies, ire:– arborele t, dar cu nodurile procesate cu viziteaza() ı̂n ordinea

    * (S) – subarborele stânga* (R) – rădăcina* (D) – subarborele dreapta

    FII, UAIC Curs 5 SD 2019/2020 20 / 37

  • Parcurgere inordine - exemplu

    C

    E G

    K A M D

    B L F I

    H

    K

    K

    HH

    B

    B

    E

    E

    L

    L

    A

    A

    F

    F

    C

    C

    M

    M

    G

    G

    I

    I

    D

    D

    FII, UAIC Curs 5 SD 2019/2020 21 / 37

  • Parcurgere inordine - exemplu

    C

    E G

    K A M D

    B L F I

    HK

    K

    HH

    B

    B

    E

    E

    L

    L

    A

    A

    F

    F

    C

    C

    M

    M

    G

    G

    I

    I

    D

    D

    FII, UAIC Curs 5 SD 2019/2020 21 / 37

  • Parcurgere inordine - exemplu

    C

    E G

    K A M D

    B L F I

    HK

    K

    HH

    B

    B

    E

    E

    L

    L

    A

    A

    F

    F

    C

    C

    M

    M

    G

    G

    I

    I

    D

    D

    FII, UAIC Curs 5 SD 2019/2020 21 / 37

  • Parcurgere inordine - exemplu

    C

    E G

    K A M D

    B L F I

    HK

    K

    HH

    B

    B

    E

    E

    L

    L

    A

    A

    F

    F

    C

    C

    M

    M

    G

    G

    I

    I

    D

    D

    FII, UAIC Curs 5 SD 2019/2020 21 / 37

  • Parcurgere inordine - exemplu

    C

    E G

    K A M D

    B L F I

    HK

    K

    HH

    B

    B

    E

    E

    L

    L

    A

    A

    F

    F

    C

    C

    M

    M

    G

    G

    I

    I

    D

    D

    FII, UAIC Curs 5 SD 2019/2020 21 / 37

  • Parcurgere inordine - exemplu

    C

    E G

    K A M D

    B L F I

    HK

    K

    HH

    B

    B

    E

    E

    L

    L

    A

    A

    F

    F

    C

    C

    M

    M

    G

    G

    I

    I

    D

    D

    FII, UAIC Curs 5 SD 2019/2020 21 / 37

  • Parcurgere inordine - exemplu

    C

    E G

    K A M D

    B L F I

    HK

    K

    HH

    B

    B

    E

    E

    L

    L

    A

    A

    F

    F

    C

    C

    M

    M

    G

    G

    I

    I

    D

    D

    FII, UAIC Curs 5 SD 2019/2020 21 / 37

  • Parcurgere inordine - exemplu

    C

    E G

    K A M D

    B L F I

    HK

    K

    HH

    B

    B

    E

    E

    L

    L

    A

    A

    F

    F

    C

    C

    M

    M

    G

    G

    I

    I

    D

    D

    FII, UAIC Curs 5 SD 2019/2020 21 / 37

  • Parcurgere inordine - exemplu

    C

    E G

    K A M D

    B L F I

    HK

    K

    HH

    B

    B

    E

    E

    L

    L

    A

    A

    F

    F

    C

    C

    M

    M

    G

    G

    I

    I

    D

    D

    FII, UAIC Curs 5 SD 2019/2020 21 / 37

  • Parcurgere inordine - exemplu

    C

    E G

    K A M D

    B L F I

    HK

    K

    HH

    B

    B

    E

    E

    L

    L

    A

    A

    F

    F

    C

    C

    M

    M

    G

    G

    I

    I

    D

    D

    FII, UAIC Curs 5 SD 2019/2020 21 / 37

  • Parcurgere inordine - exemplu

    C

    E G

    K A M D

    B L F I

    HK

    K

    HH

    B

    B

    E

    E

    L

    L

    A

    A

    F

    F

    C

    C

    M

    M

    G

    G

    I

    I

    D

    D

    FII, UAIC Curs 5 SD 2019/2020 21 / 37

  • Parcurgere inordine - exemplu

    C

    E G

    K A M D

    B L F I

    HK

    K

    HH

    B

    B

    E

    E

    L

    L

    A

    A

    F

    F

    C

    C

    M

    M

    G

    G

    I

    I

    D

    D

    FII, UAIC Curs 5 SD 2019/2020 21 / 37

  • Parcurgere inordine - exemplu

    C

    E G

    K A M D

    B L F I

    HK

    K

    HH

    B

    B

    E

    E

    L

    L

    A

    A

    F

    F

    C

    C

    M

    M

    G

    G

    I

    I

    D

    D

    FII, UAIC Curs 5 SD 2019/2020 21 / 37

  • ArbBin – parcurgerea postordine

    parcurgerePostordine()

    I intrare:– un arbore binar t;– o procedură viziteaza().

    I ies, ire:– arborele t, dar cu nodurile procesate cu viziteaza() ı̂n ordinea

    * (S) – subarborele stânga* (D) – subarborele dreapta* (R) – rădăcina

    FII, UAIC Curs 5 SD 2019/2020 22 / 37

  • Parcurgere postordine - exemplu

    C

    E G

    K A M D

    B L F I

    H

    HH

    B

    B

    K

    K

    L

    L

    F

    F

    A

    A

    E

    E

    M

    M

    I

    I

    D

    D

    G

    G

    C

    C

    FII, UAIC Curs 5 SD 2019/2020 23 / 37

  • Parcurgere postordine - exemplu

    C

    E G

    K A M D

    B L F I

    HH

    H

    B

    B

    K

    K

    L

    L

    F

    F

    A

    A

    E

    E

    M

    M

    I

    I

    D

    D

    G

    G

    C

    C

    FII, UAIC Curs 5 SD 2019/2020 23 / 37

  • Parcurgere postordine - exemplu

    C

    E G

    K A M D

    B L F I

    HH

    HB

    B

    K

    K

    L

    L

    F

    F

    A

    A

    E

    E

    M

    M

    I

    I

    D

    D

    G

    G

    C

    C

    FII, UAIC Curs 5 SD 2019/2020 23 / 37

  • Parcurgere postordine - exemplu

    C

    E G

    K A M D

    B L F I

    HH

    HB

    B

    K

    K

    L

    L

    F

    F

    A

    A

    E

    E

    M

    M

    I

    I

    D

    D

    G

    G

    C

    C

    FII, UAIC Curs 5 SD 2019/2020 23 / 37

  • Parcurgere postordine - exemplu

    C

    E G

    K A M D

    B L F I

    HH

    HB

    B

    K

    K

    L

    L

    F

    F

    A

    A

    E

    E

    M

    M

    I

    I

    D

    D

    G

    G

    C

    C

    FII, UAIC Curs 5 SD 2019/2020 23 / 37

  • Parcurgere postordine - exemplu

    C

    E G

    K A M D

    B L F I

    HH

    HB

    B

    K

    K

    L

    L

    F

    F

    A

    A

    E

    E

    M

    M

    I

    I

    D

    D

    G

    G

    C

    C

    FII, UAIC Curs 5 SD 2019/2020 23 / 37

  • Parcurgere postordine - exemplu

    C

    E G

    K A M D

    B L F I

    HH

    HB

    B

    K

    K

    L

    L

    F

    F

    A

    A

    E

    E

    M

    M

    I

    I

    D

    D

    G

    G

    C

    C

    FII, UAIC Curs 5 SD 2019/2020 23 / 37

  • Parcurgere postordine - exemplu

    C

    E G

    K A M D

    B L F I

    HH

    HB

    B

    K

    K

    L

    L

    F

    F

    A

    A

    E

    E

    M

    M

    I

    I

    D

    D

    G

    G

    C

    C

    FII, UAIC Curs 5 SD 2019/2020 23 / 37

  • Parcurgere postordine - exemplu

    C

    E G

    K A M D

    B L F I

    HH

    HB

    B

    K

    K

    L

    L

    F

    F

    A

    A

    E

    E

    M

    M

    I

    I

    D

    D

    G

    G

    C

    C

    FII, UAIC Curs 5 SD 2019/2020 23 / 37

  • Parcurgere postordine - exemplu

    C

    E G

    K A M D

    B L F I

    HH

    HB

    B

    K

    K

    L

    L

    F

    F

    A

    A

    E

    E

    M

    M

    I

    I

    D

    D

    G

    G

    C

    C

    FII, UAIC Curs 5 SD 2019/2020 23 / 37

  • Parcurgere postordine - exemplu

    C

    E G

    K A M D

    B L F I

    HH

    HB

    B

    K

    K

    L

    L

    F

    F

    A

    A

    E

    E

    M

    M

    I

    I

    D

    D

    G

    G

    C

    C

    FII, UAIC Curs 5 SD 2019/2020 23 / 37

  • Parcurgere postordine - exemplu

    C

    E G

    K A M D

    B L F I

    HH

    HB

    B

    K

    K

    L

    L

    F

    F

    A

    A

    E

    E

    M

    M

    I

    I

    D

    D

    G

    G

    C

    C

    FII, UAIC Curs 5 SD 2019/2020 23 / 37

  • Parcurgere postordine - exemplu

    C

    E G

    K A M D

    B L F I

    HH

    HB

    B

    K

    K

    L

    L

    F

    F

    A

    A

    E

    E

    M

    M

    I

    I

    D

    D

    G

    G

    C

    C

    FII, UAIC Curs 5 SD 2019/2020 23 / 37

  • ArbBin – parcurgerea BFS (pe lăţime)

    parcurgereBFS()

    I intrare:– un arbore binar t;– o procedură viziteaza().

    I ies, ire:– arborele t, dar cu nodurile procesate cu viziteaza() ı̂n ordinea BFS

    (pe lăţime / pe niveluri).

    FII, UAIC Curs 5 SD 2019/2020 24 / 37

  • Parcurgere BFS - exemplu

    C

    E G

    K A M D

    B L F I

    H

    C

    C

    E

    E

    G

    G

    K

    K

    A

    A

    M

    M

    D

    D

    B

    B

    L

    L

    F

    F

    I

    I

    HH

    FII, UAIC Curs 5 SD 2019/2020 25 / 37

  • Parcurgere BFS - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    G

    G

    K

    K

    A

    A

    M

    M

    D

    D

    B

    B

    L

    L

    F

    F

    I

    I

    HH

    FII, UAIC Curs 5 SD 2019/2020 25 / 37

  • Parcurgere BFS - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    G

    G

    K

    K

    A

    A

    M

    M

    D

    D

    B

    B

    L

    L

    F

    F

    I

    I

    HH

    FII, UAIC Curs 5 SD 2019/2020 25 / 37

  • Parcurgere BFS - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    G

    G

    K

    K

    A

    A

    M

    M

    D

    D

    B

    B

    L

    L

    F

    F

    I

    I

    HH

    FII, UAIC Curs 5 SD 2019/2020 25 / 37

  • Parcurgere BFS - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    G

    G

    K

    K

    A

    A

    M

    M

    D

    D

    B

    B

    L

    L

    F

    F

    I

    I

    HH

    FII, UAIC Curs 5 SD 2019/2020 25 / 37

  • Parcurgere BFS - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    G

    G

    K

    K

    A

    A

    M

    M

    D

    D

    B

    B

    L

    L

    F

    F

    I

    I

    HH

    FII, UAIC Curs 5 SD 2019/2020 25 / 37

  • Parcurgere BFS - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    G

    G

    K

    K

    A

    A

    M

    M

    D

    D

    B

    B

    L

    L

    F

    F

    I

    I

    HH

    FII, UAIC Curs 5 SD 2019/2020 25 / 37

  • Parcurgere BFS - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    G

    G

    K

    K

    A

    A

    M

    M

    D

    D

    B

    B

    L

    L

    F

    F

    I

    I

    HH

    FII, UAIC Curs 5 SD 2019/2020 25 / 37

  • Parcurgere BFS - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    G

    G

    K

    K

    A

    A

    M

    M

    D

    D

    B

    B

    L

    L

    F

    F

    I

    I

    HH

    FII, UAIC Curs 5 SD 2019/2020 25 / 37

  • Parcurgere BFS - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    G

    G

    K

    K

    A

    A

    M

    M

    D

    D

    B

    B

    L

    L

    F

    F

    I

    I

    HH

    FII, UAIC Curs 5 SD 2019/2020 25 / 37

  • Parcurgere BFS - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    G

    G

    K

    K

    A

    A

    M

    M

    D

    D

    B

    B

    L

    L

    F

    F

    I

    I

    HH

    FII, UAIC Curs 5 SD 2019/2020 25 / 37

  • Parcurgere BFS - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    G

    G

    K

    K

    A

    A

    M

    M

    D

    D

    B

    B

    L

    L

    F

    F

    I

    I

    HH

    FII, UAIC Curs 5 SD 2019/2020 25 / 37

  • Parcurgere BFS - exemplu

    C

    E G

    K A M D

    B L F I

    HC

    C

    E

    E

    G

    G

    K

    K

    A

    A

    M

    M

    D

    D

    B

    B

    L

    L

    F

    F

    I

    I

    HH

    FII, UAIC Curs 5 SD 2019/2020 25 / 37

  • ArbBin: implementarea cu liste

    I tablou de părinţi: reprezentarea relaţiei“părinte”.

    I Avantaje:- simplitate;- acces uşor de la un nod spre rădăcină;- economie de memorie.

    I Inconveniente:- acces dificil de la rădăcină spre

    noduri.

    A0

    B1 D2

    C3 E4 J5 K6

    M7 N8 W9

    -1 0 0 1 1 2 2 4 4 50 1 2 3 4 5 6 7 8 9

    FII, UAIC Curs 5 SD 2019/2020 31 / 37

  • ArbBin: implementarea cu tablouri

    I Nodurile sunt memorate ı̂ntr-un tablou.

    I Indexul unui nod este:- index(rădăcină) = 0

    - index(x) = 2*index(părinte(x))+1,dacă x este fiu stâng

    - index(x) = 2*index(părinte(x))+2,dacă x este fiu drept

    A0

    B1 D2

    C3 E4 J5 K6

    M9 N 10 W 12

    A B D C E J K M N W0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

    FII, UAIC Curs 5 SD 2019/2020 32 / 37

  • Conţinut

    Arbori

    Arbori binari (ArbBin)

    Aplicat, ie: reprezentarea expresiilor ca arbori

    FII, UAIC Curs 5 SD 2019/2020 33 / 37

  • Aplicaţie: expresii ı̂ntregi

    I Expresii ı̂ntregi– definiţie;– exemple.

    I Reprezentarea expresiilor ca arbori– similarităţi ı̂ntre cele două definiţii;– arborele asociat unei expresii;– notaţiile prefixate, infixate şi postfixate şi parcurgeri ale arborilor.

    FII, UAIC Curs 5 SD 2019/2020 34 / 37

  • Definiţia expresiilor ı̂ntregi

    ::= ... -2 | -1 | 0 | 1 | 2 ...

    ::= + | - | * | / | %

    ::=

    | ()

    |

    I reguli de precedenţă12− 5 ∗ 2 este (12− 5) ∗ 2 sau 12− (5 ∗ 2) ?

    I reguli de asociere15/4/2 este (15/4)/2 sau 15/(4/2)?15/4 ∗ 2 este (15/4) ∗ 2 sau 15/(4 ∗ 2)?

    FII, UAIC Curs 5 SD 2019/2020 35 / 37

  • Expresiile reprezentate ca arbori

    −12 + 17 ∗ 5–(43 + 34/21 ∗ 66)

    +

    -12 *

    17 5

    +

    43 *

    /

    34 21

    66

    FII, UAIC Curs 5 SD 2019/2020 36 / 37

  • Expresiile reprezentate ca arbori

    −12 + 17 ∗ 5–(43 + 34/21 ∗ 66)

    +

    -12 *

    17 5

    +

    43 *

    /

    34 21

    66

    FII, UAIC Curs 5 SD 2019/2020 36 / 37

  • Notaţiile postfixate şi prefixate

    I Notaţia postfixată se obţine prin parcurgerea postordine−12, 17, 5, ∗,+, 43, 34, 21, /, 66, ∗,+,−

    I Notaţia prefixată se obţine prin parcurgerea preordine−,+,−12, ∗, 17, 5,+, 43, ∗, /, 34, 21, 66

    +

    -12 *

    17 5

    +

    43 *

    /

    34 21

    66

    FII, UAIC Curs 5 SD 2019/2020 37 / 37