You are on page 1of 23

Profa. Dra.

Jaqueline Brigladori Pugliesi

Uma rvore uma estrutura de dados no linear frequentemente utilizada para rpido acesso aos dados. Nota-se que a recurso utilizada como ferramenta de definio. Um rvore uma estrutura sofisticada cuja definio por meio de recurso elegante e eficaz. Uma rvore, com tipo T, pode ser definida recursivamente da seguinte forma:
Uma rvore (estrutura) vazia ou Um n do tipo T associado a um nmero finito de estruturas disjuntas de rvore do mesmo tipo T, denominadas subrvores

Profa. Dra. Jaquelline Brigladori Pugliesi

Uma rvore um conjunto finito T de um ou mais ns, tais que:


existe um n especial, denominado raiz de T; os demais ns formam m 0 conjuntos disjuntos T1, ..., Tm no qual cada um destes conjuntos uma rvore; T1, ..., Tm so denominadas subrvores.

Profa. Dra. Jaquelline Brigladori Pugliesi

Profa. Dra. Jaquelline Brigladori Pugliesi

Existem vrias representaes equivalente para rvores:


conjuntos aninhados, parnteses aninhados, diagramas, grafos, ...

( A (B) ( C (D (G) (H)) (E) (F (I)) ) )

A C B D G H E F I

Cada elemento de uma rvore chamado n da rvore.


A

Profa. Dra. Jaquelline Brigladori Pugliesi

Normalmente, as rvores so desenhadas com a raiz no topo.


A

Profa. Dra. Jaquelline Brigladori Pugliesi

No exemplo, o n A possui trs subrvores cujas razes so B, C e D.


A

Profa. Dra. Jaquelline Brigladori Pugliesi

Um n sem filhos chamado folha (ou terminal).


A

Profa. Dra. Jaquelline Brigladori Pugliesi

Um n com filhos denominado no-folha, noterminal ou interior.


A

Profa. Dra. Jaquelline Brigladori Pugliesi

Se um n X a raiz de uma rvore e um n Y a raiz de sua subrvore direita ou subrvore esquerda, ento X o pai de Y e Y o filho de X. O n X um ancestral do n Y (e Y descendente de X) se X for o pai de Y ou ento se X for o pai de algum ancestral de Y. Dois ns so irmos se forem filhos do mesmo pai.

Profa. Dra. Jaquelline Brigladori Pugliesi

O grau de um n determinado pelo nmero de filhos (imediatos) deste n. Portanto, o grau de uma folha zero. O grau de uma rvore determinado pelo grau mximo entre todos os ns desta rvore.

Profa. Dra. Jaquelline Brigladori Pugliesi

Grau 3 2 1 3 1 0 0 1 0 0 0 0

O grau da rvore 3.
A

A B C D E

F G H I J

K L

Profa. Dra. Jaquelline Brigladori Pugliesi

O nvel de um n definido como:


em geral, o n raiz est no nvel 0 (zero); os outros ns possuem um nvel a mais que o nvel de seu n pai. 0 A
B C D

Profa. Dra. Jaquelline Brigladori Pugliesi

A profundidade ou altura de uma rvore significa o nvel mximo de qualquer folha na rvore, ou seja, o tamanho do percurso mais distante da raiz at qualquer folha. No exemplo, a rvore possui altura 3.

Profa. Dra. Jaquelline Brigladori Pugliesi

O nmero mximo de ns N(h,d) em uma rvore de altura h atingido quando todos os ns possurem d subrvores, exceto os de nvel h, que no possuem subrvores Para uma rvore de grau d
Nvel Nvel Nvel ... Nvel 0 contm um n (raiz) 1 contm d descendentes da raiz 2 contm d2 descendentes i contm di descendentes

Profa. Dra. Jaquelline Brigladori Pugliesi

Assumindo d=3
Nvel Nvel Nvel Nvel 0 1 2 3 30 31 32 33 = = = = 1 n (raiz) 3 ns 9 ns 27 ns

Profa. Dra. Jaquelline Brigladori Pugliesi

Portanto, o nmero mximo de ns N(h,d) soma do nmero de ns em cada nvel, ou seja:

h h ... d N ( h, d ) d i d 0 d 1 i 0

Profa. Dra. Jaquelline Brigladori Pugliesi

Uma rvore ordenada uma rvore na qual os ramos de cada n so ordenados. Essas duas rvores ordenadas so distintas.
A B C D B A D C

10

rvores binrias so rvores ordenadas de grau 2. Uma rvore binria um conjunto finito de ns que:
ou vazia; ou consiste de uma raiz e duas rvores binrias disjuntas: subrvore esquerda e subrvore direita.
A Subrvore esquerda B D C

Subrvore direita

Profa. Dra. Jaquelline Brigladori Pugliesi

As rvores binrias seguintes so distintas:


a primeira tem subrvore direita vazia; a segunda tem subrvore esquerda vazia.

A terceira uma rvore degenerada.


A

B (i) (ii)

B
D

(iii)

Profa. Dra. Jaquelline Brigladori Pugliesi

11

Uma rvore estritamente binria aquela que tem ns que possuem 0 ou dois filhos. Ns interiores (ns que no so folhas) possuem sempre 2 filhos.
A B C

Profa. Dra. Jaquelline Brigladori Pugliesi

Uma rvore binria completa aquela que estritamente binria de nvel d e com todos os ns-folhas no mesmo nvel d.
A B C

Profa. Dra. Jaquelline Brigladori Pugliesi

12

Uma rvore binria dita balanceada se, para cada n, as alturas de suas duas subrvores diferem de, no mximo, 1.
A B C

Profa. Dra. Jaquelline Brigladori Pugliesi

Uma rvore binria perfeitamente balanceada se, para cada n, os nmeros de ns das suas duas subrvores diferem de, no mximo, 1. Toda rvore perfeitamente balanceada balanceada, mas no vale o inverso.

Profa. Dra. Jaquelline Brigladori Pugliesi

13

n=2 n=1

n=3

n=4

n=5

n=6

n=7

Profa. Dra. Jaquelline Brigladori Pugliesi

Implementao:
sequencial; encadeada: alocao esttica ou dinmica.

Cada n em uma rvore binria possui um campo de dados, um ponteiro para a subrvore esquerda e um ponteiro para a subrvore direita.

Profa. Dra. Jaquelline Brigladori Pugliesi

14

Campo de dados

Campo de ligao para subrvore esquerda

Campo de ligao para subrvore direita

Profa. Dra. Jaquelline Brigladori Pugliesi

struct no { int info; struct no *esq, *dir; };

Profa. Dra. Jaquelline Brigladori Pugliesi

15

raiz
A A B C B C

D D

Profa. Dra. Jaquelline Brigladori Pugliesi

Os ns de uma AB podem ser visitados de trs formas (varredura da rvore):


Pr-ordem: R, E, D In-ordem: E, R, D Ps-ordem: E, D, R
R

Visitar um n pode ser: imprimir o n; buscar um n; modificar o n; remover o n; etc.

Profa. Dra. Jaquelline Brigladori Pugliesi

16

Pr-ordem: A, B, D, H, E, C, F, I, G
A

Profa. Dra. Jaquelline Brigladori Pugliesi

In-ordem: H, D, B, E, A, I, F, C, G
A

Profa. Dra. Jaquelline Brigladori Pugliesi

17

Ps-ordem: H, D, E, B, I, F, G, C, A
A

Profa. Dra. Jaquelline Brigladori Pugliesi

Pr-ordem: + a * b c In-ordem: a + ( b * c ) Ps-ordem: a b c * +


a b

+ * c

Profa. Dra. Jaquelline Brigladori Pugliesi

18

Se rvore vazia, fim. processar a raiz percorrer em pr-ordem a subrvore esquerda percorrer em pr-ordem a subrvore direita

Profa. Dra. Jaquelline Brigladori Pugliesi

Se rvore vazia, fim. percorrer em in-ordem a subrvore esquerda processar a raiz percorrer em in-ordem a subrvore direita

Profa. Dra. Jaquelline Brigladori Pugliesi

19

Se rvore vazia, fim. percorrer em ps-ordem a subrvore esquerda percorrer em ps-ordem a subrvore direita processar a raiz

Profa. Dra. Jaquelline Brigladori Pugliesi

void pre_ordem(struct no *raiz) { if(raiz != NULL){ printf("%d ", raiz->info); pre_ordem(raiz->esq); pre_ordem(raiz->dir); } }

Profa. Dra. Jaquelline Brigladori Pugliesi

20

void in_ordem(struct no *raiz) { if(raiz != NULL){ in_ordem(raiz->esq); printf("%d ", raiz->info); in_ordem(raiz->dir); } }

Profa. Dra. Jaquelline Brigladori Pugliesi

void pos_ordem(struct no *raiz) { if(raiz != NULL){ pos_ordem(raiz->esq); pos_ordem(raiz->dir); printf("%d ", raiz->info); } }

Profa. Dra. Jaquelline Brigladori Pugliesi

21

Uma rvore de busca binria ou vazia ou seu n raiz contm uma chave e:
todas as chaves da subrvore esquerda so menores que a chave da raiz; todas as chaves da subrvore direita so maiores que a chave da raiz; as subrvores esquerda e direita tambm so rvores de busca binrias.

Vantagem: suficiente realizar a busca em, no mximo, uma das subrvores.

Profa. Dra. Jaquelline Brigladori Pugliesi

7
Profa. Dra. Jaquelline Brigladori Pugliesi

22

FIM
Profa. Dra. Jaquelline Brigladori Pugliesi

23