Вы находитесь на странице: 1из 5

Definio:

rvores
Leopoldo Frana
leopoldofrancaneto@gmail.com

rvore um conjunto de ns tal que existe um n r, denominado raiz, com zero ou mais sub-rvores, cujas razes esto ligadas a r os ns razes destas sub-rvores so os filhos de r os ns internos da rvore so os ns com filhos as folhas ou ns externos da rvore so os ns sem filhos

rvores
Estruturas Hierrquicas

rvores
Representao de rvores: Explcita

0 n interno

Raiz Grau 2

Pai H=3 Filhos 2

3 Folha

rvores Binrias
Uma rvore em que cada n tem zero, um ou dois filhos Uma rvore binria : uma rvore vazia; ou um n raiz com duas sub-rvores: a sub-rvore da direita (sad) a sub-rvore da esquerda (sae)

Heaps
rvore binria cujas chaves satisfazem a seguinte propriedade a chave de cada n maior ou igual a chave de seus filhos Pela lei da transitividade: chave de todo n maior ou igual s chaves de todos os seus ns descendentes Heaps so teis na implementao de uma fila de prioridade, que um tipo abstrato de dado definido pelas seguintes operaes insert(x): insere a chave x na estrutura de dado remove( ): remove a maior chave da estrutura de dado

Heaps: remove( )
remove raiz
3 8 4 7

Heaps: remove( )
maior que 4 ?
3 7 4

cpia

Inverte valores
7 4

qual o maior ?

x
2 1 0 2 3 2 5 4 2 1 0 2 3 2 5

Heaps: remove( )
Propriedade da heap preservada ?
raiz da sub-rvore!
3 7 4

Heaps: remove( )
Repete processo
3 7 5 4

5 4

Heaps: remove( )
Fim
3 7 5

Heaps: remove( )

algoritmo termina quando x se torna o mximo da sub-rvore, ou quando ela alcana uma folha
4

Nmero mximo de comparaes para uma remoo 2[log2n] - 2x a altura da rvore.

Heaps: insert( )
7 3 5

Heaps: insert( )
7 3 6 5

4 6

6 5

4 6

Heaps: insert( )
Fim
3 7 6

Heaps: insert( )

Nmero mximo de comparaes requeridas para a insero [log2n] - altura da rvore


Heap no suporta outras operaes eficientemente
5

hierarquia da heap intil na busca de uma chave

Heaps

rvore binria de busca


Implementam eficientemente as operaes
search(x): encontra a chave x na estrutura de dado, ou
determina que x no encontra-se na rvore

Bom exemplo de uma implementao de um TAD


suporta operaes especficas eficientemente usar estrutura da heap sobre um dado, independente de seu tipo, para estas operaes

insert(x): insere a chave x na estrutura de dado


(a menos que a chave j se encontre l)

delete(x): remove a chave x da estrutura de dados se ela existir

rvore binria de busca


TAD que manipulam operaes chamados dicionrios rvores binrias de busca implementam dicionrios eficientemente Cada n da rvore um registro um registro contendo: chave esquerda e direita so ponteiros para outros ns (ou null) chave dos filhos esquerdos so menores que a chave do n pai chave dos filhos direitos so maiores que a chave do n pai

rvore binria de busca


busca 7
5 9 14

11

17

12

13

16

18

rvore binria de busca


Busca 11
5 Falha na busca 3 7 12 17 9

rvore binria de busca


Busca 12
5 9

passo 1: busca 11
14

passo 1: busca 12
14

12 encontrou 12

17

11

13

16

18

13

16

18

Recurso

Recurso

Recurso

Exerccio 1
1) Implemente os trs Algoritmos de percursos de rvore Binria em JAVA para exibir a rvore. 2) Inserir (n), onde n inteiro;