Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este...

102
Arbori binari SD 2019/2020

Transcript of Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este...

Page 1: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Arbori binari

SD 2019/2020

Page 2: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Continut

Arbori

Arbori binari (ArbBin)

Aplicat, ie: reprezentarea expresiilor ca arbori

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

Page 3: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Arbori: definit, ie recursiva

A =

{Λ – arborele vid,(r , {A1, · · · ,Ak}), r element s, i A1, · · · ,Ak arbori.

A = Λ sau

A1 A2

. . .Ak

r

Daca A este ordonat (planar), atunci1

2 36=

1

3 2

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

Page 4: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Arbori: definit, ie recursiva

A =

{Λ – arborele vid,(r , {A1, · · · ,Ak}), r element s, i A1, · · · ,Ak arbori.

A = Λ sau

A1 A2

. . .Ak

r

Daca A este ordonat (planar), atunci1

2 36=

1

3 2

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

Page 5: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Arbori: definit, ie recursiva

A =

{Λ – arborele vid,(r , {A1, · · · ,Ak}), r element s, i A1, · · · ,Ak arbori.

A = Λ sau

A1 A2

. . .Ak

r

Daca A este ordonat (planar), atunci1

2 36=

1

3 2

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

Page 6: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Arbori: terminologie

I radacina: nodul fara parinte.

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

I nod extern (frunza): nod fara fii.

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

I frat, i: toate celelalte noduri avandacelas, i parinte.

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

subarbore

A

B C D

E F G H

I J K

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

Page 7: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Arbori: terminologie

I adancimea uni nod x :

adancime(x) =

{0, x este radacina,1 + adancime(parinte(x)), ın caz contrar.

I ınalt, imea unui arbore:adancimea maxima a nodurilorarborelui.

I ınalt, imea unui nod: distant,a dela nod la cel mai departatdescendent al sau.

A

B C D

E F G H

I J K

0 –

1 –

2 –

3 –

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

Page 8: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Continut

Arbori

Arbori binari (ArbBin)

Aplicat, ie: reprezentarea expresiilor ca arbori

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

Page 9: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Tipul abstract ArbBin

Obiecte: arbori binari.

Un arbore binar este o colect, ie de noduri cu proprietat, ile:

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

I orice nod, exceptand unul singur — radacina — are un singur nodpredecesor (tata, parinte).

I radacina nu are predecesori.

I fii sunt ordonat, i: fiul stang, fiul drept. Daca un nod are un singur fiu,atunci trebuie ment, ionat care.

I nodurile fara fii formeaza frontiera arborelui.

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

Page 10: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Arbori binari: exemplu

C

E G

K A M D

B L F I

H

radacina

fiu stang fiu drept

subarbore stang

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

Page 11: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Arbori binari: exemplu

C

E G

K A M D

B L F I

H

radacina

fiu stang fiu drept

subarbore stang

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

Page 12: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Arbori binari: exemplu

C

E G

K A M D

B L F I

H

radacina

fiu stang fiu drept

subarbore stang

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

Page 13: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Arbori binari: definit, ie recursiva

I Arborele vid (fara 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 radacina, t1 subarbore stang al radacinii s, i t2 subarboredrept al radacinii este arbore binar.

t1 t2

v

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

Page 14: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Arbori binari: proprietat, i

Notat, ii:

I n – numarul de noduri din arbore.

I ne – numarul de noduri externe.

I ni – numarul de noduri interne.

I h – ınalt, 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

Page 15: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Arbori binari: proprietat, i

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

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

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

I Arbore complet: arbore propriu ın care frunzele au aceeasi adancime.

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

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

Page 16: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

ArbBin – operat, ii

insereaza()

I intrare:

– un arbore binar t;– adresa unui nod cu cel mult un fiu (tatal noului nod);– tipul fiului adagat (stanga, dreapta);– informatia e din noul nod.

I ies, ire:

– arborele t la care s-a adaugat un nod ce memoreaza e;noul nod nu are fii.

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

Page 17: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

ArbBin: inserare - exemplu

C

E G

K A M D

B L F I

Hinsereaza X ca fiu stang a lui K

X

insereaza Y ca fiu drept a lui LY

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

Page 18: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

ArbBin: inserare - exemplu

C

E G

K A M D

B L F I

Hinsereaza X ca fiu stang a lui K

X

insereaza Y ca fiu drept a lui LY

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

Page 19: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

ArbBin: inserare - exemplu

C

E G

K A M D

B L F I

Hinsereaza X ca fiu stang a lui K

X

insereaza Y ca fiu drept a lui L

Y

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

Page 20: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

ArbBin: inserare - exemplu

C

E G

K A M D

B L F I

Hinsereaza X ca fiu stang a lui K

X

insereaza Y ca fiu drept a lui LY

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

Page 21: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

ArbBin – operat, ii

elimina()

I intrare:

– un arbore binar t;– adresa unui nod fara fii si adresa nodului parinte.

I ies, ire:

– arborele t din care s-a eliminat nodul dat(de pe frontiera).

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

Page 22: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

ArbBin: eliminare - exemplu

C

E G

K A M D

B L F I

H

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

Page 23: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

ArbBin: eliminare - exemplu

C

E G

K A M D

B F I

H

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

Page 24: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

ArbBin: eliminare - exemplu

C

E G

K A M D

B F I

H

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

Page 25: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

ArbBin – parcurgerea preordine

parcurgerePreordine()

I intrare:

– un arbore binar t;– o procedura viziteaza().

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

* (R) – radacina* (S) – subarborele stanga* (D) – subarborele dreapta

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

Page 26: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 27: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 28: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 29: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 30: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 31: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 32: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 33: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 34: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 35: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 36: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 37: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 38: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 39: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

ArbBin – parcurgerea inordine

parcurgereInordine()

I intrare:

– un arbore binar t;– o procedura viziteaza().

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

* (S) – subarborele stanga* (R) – radacina* (D) – subarborele dreapta

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

Page 40: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 41: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 42: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 43: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 44: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 45: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 46: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 47: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 48: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 49: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 50: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 51: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 52: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 53: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

ArbBin – parcurgerea postordine

parcurgerePostordine()

I intrare:

– un arbore binar t;– o procedura viziteaza().

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

* (S) – subarborele stanga* (D) – subarborele dreapta* (R) – radacina

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

Page 54: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 55: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 56: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 57: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 58: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 59: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 60: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 61: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 62: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 63: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 64: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 65: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 66: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 67: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

ArbBin – parcurgerea BFS (pe latime)

parcurgereBFS()

I intrare:

– un arbore binar t;– o procedura viziteaza().

I ies, ire:

– arborele t, dar cu nodurile procesate cu viziteaza() ın ordinea BFS(pe latime / pe niveluri).

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

Page 68: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 69: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 70: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 71: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 72: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 73: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 74: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 75: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 76: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 77: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 78: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 79: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 80: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 81: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

ArbBin: implementarea cu structuri ınlantuite

C • •

E • • G • •

K • • A • • M • • D • •

B • • L • • F • • I • •

H • •

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

Page 82: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

ArbBin: structura unui nod

Un nod v (aflat la adresa de memorie v) este o structura cu trei campuri:

I v->inf – informatia memorata ın nod;

I v->stg – adresa fiului stanga;

I v->drp – adresa fiului dreapta.

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

Page 83: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

ArbBin: parcurgePreordine()

procedure parcurgePreordine(v , viziteaza)begin

if (v == NULL) thenreturn

elseviziteaza(v)parcurgePreordine(v− > stg , viziteaza)parcurgePreordine(v− > drp, viziteaza)

end

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

Page 84: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Implementarea parcurgerii BFS

C

E G

K A M D

BFS =

Coada = ( )C

C

C

C E

E

G

G

E

E K

K

A

A

G

G M

M

D

D

K

K

A

A

M

M

D

D

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

Page 85: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Implementarea parcurgerii BFS

C

E G

K A M D

BFS =

Coada = ( )

C

C

C

C E

E

G

G

E

E K

K

A

A

G

G M

M

D

D

K

K

A

A

M

M

D

D

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

Page 86: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Implementarea parcurgerii BFS

C

E G

K A M D

BFS =

Coada = ( )C

C

C

C E

E

G

G

E

E K

K

A

A

G

G M

M

D

D

K

K

A

A

M

M

D

D

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

Page 87: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Implementarea parcurgerii BFS

C

E G

K A M D

BFS =

Coada = ( )C

C

C

C E

E

G

G

E

E K

K

A

A

G

G M

M

D

D

K

K

A

A

M

M

D

D

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

Page 88: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Implementarea parcurgerii BFS

C

E G

K A M D

BFS =

Coada = ( )C

C

C

C E

E

G

G

E

E K

K

A

A

G

G M

M

D

D

K

K

A

A

M

M

D

D

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

Page 89: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Implementarea parcurgerii BFS

C

E G

K A M D

BFS =

Coada = ( )C

C

C

C E

E

G

G

E

E K

K

A

A

G

G M

M

D

D

K

K

A

A

M

M

D

D

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

Page 90: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Implementarea parcurgerii BFS

C

E G

K A M D

BFS =

Coada = ( )C

C

C

C E

E

G

G

E

E K

K

A

A

G

G M

M

D

D

K

K

A

A

M

M

D

D

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

Page 91: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Implementarea parcurgerii BFS

C

E G

K A M D

BFS =

Coada = ( )C

C

C

C E

E

G

G

E

E K

K

A

A

G

G M

M

D

D

K

K

A

A

M

M

D

D

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

Page 92: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Implementarea parcurgerii BFS

C

E G

K A M D

BFS =

Coada = ( )C

C

C

C E

E

G

G

E

E K

K

A

A

G

G M

M

D

D

K

K

A

A

M

M

D

D

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

Page 93: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Implementarea parcurgerii BFS

C

E G

K A M D

BFS =

Coada = ( )C

C

C

C E

E

G

G

E

E K

K

A

A

G

G M

M

D

D

K

K

A

A

M

M

D

D

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

Page 94: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Implementarea parcurgerii BFS

procedure parcurgeBFS(t, viziteaza)begin

if (t == NULL) thenreturn

elseCoada ← coadaVida()insereaza(Coada, t)while not esteVida(Coada) do

citeste(Coada, v)viziteaza(v)if (v− > stg ! = NULL) then

insereaza(Coada, v− > stg)if (v− > drp ! = NULL) then

insereaza(Coada, v− > drp)elimina(Coada)

end

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

Page 95: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

ArbBin: implementarea cu liste

I tablou de parinti: reprezentarea relatiei“parinte”.

I Avantaje:

- simplitate;- acces usor de la un nod spre radacina;- economie de memorie.

I Inconveniente:

- acces dificil de la radacina sprenoduri.

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

Page 96: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

ArbBin: implementarea cu tablouri

I Nodurile sunt memorate ıntr-un tablou.

I Indexul unui nod este:

- index(radacina) = 0

- index(x) = 2*index(parinte(x))+1,daca x este fiu stang

- index(x) = 2*index(parinte(x))+2,daca 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

Page 97: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Continut

Arbori

Arbori binari (ArbBin)

Aplicat, ie: reprezentarea expresiilor ca arbori

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

Page 98: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Aplicatie: expresii ıntregi

I Expresii ıntregi

– definitie;– exemple.

I Reprezentarea expresiilor ca arbori

– similaritati ıntre cele doua definitii;– arborele asociat unei expresii;– notatiile prefixate, infixate si postfixate si parcurgeri ale arborilor.

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

Page 99: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Definitia expresiilor ıntregi

<int> ::= ... -2 | -1 | 0 | 1 | 2 ...

<op_bin> ::= + | - | * | / | %

<exr_int> ::= <int>

| (<exp_int>)

| <exp_int> <op_bin> <exp_int>

I reguli de precedenta12− 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

Page 100: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 101: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

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

Page 102: Arbori binari - profs.info.uaic.rosd/curs/curs-05.pdf · I Arborele vid (f ar a nici un nod) este arbore binar. I Daca v este un nod s, i t 1 s, i t 2 sunt arbori binari, atunci arborele

Notatiile postfixate si prefixate

I Notatia postfixata se obtine prin parcurgerea postordine−12, 17, 5, ∗,+, 43, 34, 21, /, 66, ∗,+,−

I Notatia prefixata se obtine 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