Sunteți pe pagina 1din 16

Arbori binari

Adugarea/tergerea unui nod


Determinarea nlimii (adncimii)
Determinarea numrului de noduri
Afiarea coninutului arborelui (preordine, inordine, postordine)
tergerea arborelui

Arbori binari de cutare


Adugarea/tergerea unui nod (cu respectarea relaiei de
ordine)

Arbori binari de cutare echilibrai AVL (G.M.


Adelson-Velsky i E.M. Landis)
Adugarea/tergerea unui nod (cu respectarea relaiei de
ordine i astfel nct arborele s rmn echilibrat)
21.04.15

Curs 1 - Introducere. Structuri de date - noiuni generale

Curs 4 Arbori binari


Structura unui nod. Definirea nodului
Nod
Cmp de legtur Cmp informaional Cmp de legtur
Pointer la
info
Pointer la
subarborele drept
subarborele drept
Pointer la nod

Arbore

Subarbore
stng
21.04.15

Rad

typedef struct nod{


info informatie;
nod *ss;//subarbore stang
nod *sd;//subarbore drept
} NOD, *PNOD;
Subarbore
drept

Curs 1 - Introducere. Structuri de date - noiuni generale

Curs 4 Arbori binari


Preordine (RSD)
Inordine (SRD)
Postordine (SDR)
2

11
21.04.15

12

10

13

Curs 1 - Introducere. Structuri de date - noiuni generale

Curs 4 Arbori binari


1
2

3
6

11

12
13

21.04.15

10
Curs 1 - Introducere. Structuri de date - noiuni generale

Curs 4 Arbori binari de cutare

Rad

< Rad

Subarbore
drept

Subarbore
stng

!!! 1, 2, 3, 4, ....

> Rad

1
2
3
4

21.04.15

Curs 1 - Introducere. Structuri de date - noiuni generale

Curs 4 Arbori binari de cutare echilibrai


Rotire simpl dreapta (inserm un nod n A)
x
y

y
C

h
x

h+1

h+1

A
h

21.04.15

Curs 1 - Introducere. Structuri de date - noiuni generale

Curs 4 Arbori binari de cutare echilibrai


Rotire simpl stnga (inserm un nod n C)
x
y

y
h A
x
h

h+1

C
h

21.04.15

h+1

Curs 1 - Introducere. Structuri de date - noiuni generale

Curs 4 Arbori binari de cutare echilibrai


Rotire dubl dreapta: stnga-dreapta (inserm
un nod n B1 sau B2)
x
z
y
C h

h A
h+1
B1

21.04.15

B1

B2

B2

Curs 1 - Introducere. Structuri de date - noiuni generale

Curs 4 Arbori binari de cutare echilibrai


Rotire dubl stnga: dreapta-stnga (inserm un
nod n B1 sau B2)
x
z
y
h A

z
C h
h+1
B1

21.04.15

B1

B2

B2

Curs 1 - Introducere. Structuri de date - noiuni generale

Curs 4 Arbori binari de cutare echilibrai


tergerea unui nod
tergere direct dac nodul are un copil sau e nod frunz
Dac nodul are i subarbore drept i stng, se determin
minimul n subarborele drept. El nlocuiete nodul
considerat, fiind ulterior ters.

!!! Reechilibrarea arborelui (de la printele nodului


ters, spre rdcin)

21.04.15

Curs 1 - Introducere. Structuri de date - noiuni generale

10

Curs 4 Arbori binari de cutare echilibrai


Cazuri ntlnite la reechilibrare rotiri simple (4
cazuri)
Caz 1 rotire simpl stnga
y
x
x
y

h-1 A
h-1
h-1 B

21.04.15

h-1

Curs 1 - Introducere. Structuri de date - noiuni generale

11

Curs 4 Arbori binari de cutare echilibrai


Cazuri ntlnite la reechilibrare rotiri simple (4
cazuri)
Caz 2 rotire simpl dreapta
x
y
y
C
h

21.04.15

h-1
h

h-1
h-1

h-1

Curs 1 - Introducere. Structuri de date - noiuni generale

12

Curs 4 Arbori binari de cutare echilibrai


Cazuri ntlnite la reechilibrare rotiri simple (4
cazuri)
Caz 3 rotire simpl stnga
y
x
x
y

h-1 A
h-1
h

21.04.15

Curs 1 - Introducere. Structuri de date - noiuni generale

13

Curs 4 Arbori binari de cutare echilibrai


Cazuri ntlnite la reechilibrare rotiri simple (4
cazuri)
Caz 4 rotire simpl dreapta
x
y
y
C
h

21.04.15

h-1
h

h
h

h-1

Curs 1 - Introducere. Structuri de date - noiuni generale

14

Curs 4 Arbori binari de cutare echilibrai


Cazuri ntlnite la reechilibrare rotiri duble (2
cazuri)
Caz 1 rotire dubl stnga (dreapta stnga)
x
z
y
y

h-1

C
h-1
B1

21.04.15 h-1

B2

B1

B2

h-1

h-1

h-2

h-1

h-2
Curs 1 - Introducere. Structuri de date - noiuni generale

15

Curs 4 Arbori binari de cutare echilibrai


Cazuri ntlnite la reechilibrare
Caz 2 rotire dubl dreapta (stnga - dreapta)
x
z
y
A

h-1

C
h-1
B1
h-1

21.04.15

B1

B2

h-1

h-1

h-2

h-1

B2
h-2

Curs 1 - Introducere. Structuri de date - noiuni generale

16

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