Árvore binária de busca

17
Árvore Binária de Árvore Binária de Busca Busca Estrutura de Dados II Estrutura de Dados II Prof. Gale Prof. Gale

Upload: holland

Post on 14-Jan-2016

27 views

Category:

Documents


0 download

DESCRIPTION

Árvore Binária de Busca. Estrutura de Dados II Prof. Gale. Analisemos a seguinte árvore:. PEDRO. MARIA. ANDRÉ. MARCELO. RODRIGO. MARCIA. VIVIANE. CEZAR. AIDE. CLAUDIO. Podemos concluir:. Esta árvore possui 10 nós distribuidos aleatoriamente. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Árvore Binária de Busca

Árvore Binária de Árvore Binária de BuscaBusca

Estrutura de Dados IIEstrutura de Dados II

Prof. GaleProf. Gale

Page 2: Árvore Binária de Busca

Analisemos a seguinte árvore:Analisemos a seguinte árvore:

PEDRO

MARIA ANDRÉ MARCELO

RODRIGO MARCIA VIVIANE CEZAR AIDE

CLAUDIO

Page 3: Árvore Binária de Busca

Podemos concluir:Podemos concluir:

Esta árvore possui 10 nós distribuidos Esta árvore possui 10 nós distribuidos aleatoriamente.aleatoriamente.

O nodo Pedro é a raiz da árvore, que tem 3 sub-O nodo Pedro é a raiz da árvore, que tem 3 sub-árvores com Maria, André e Marcelo.árvores com Maria, André e Marcelo.

O número de sub-árvores de um nó determina o O número de sub-árvores de um nó determina o graugrau desse nó. Dessa forma, Pedro e Maria têm desse nó. Dessa forma, Pedro e Maria têm grau 3, enquanto André tem grau 2 e Marcelo grau 3, enquanto André tem grau 2 e Marcelo grau zero. Nodos que possuem grau zero são grau zero. Nodos que possuem grau zero são denominados de terminais ou folhas.denominados de terminais ou folhas.

Page 4: Árvore Binária de Busca

E também...E também... Para identificar os nós da estrutura, Para identificar os nós da estrutura,

usamos as denominações da relação de usamos as denominações da relação de hierarquia existente em uma árvore hierarquia existente em uma árvore genealógica. Dessa forma, Pedro é pai de genealógica. Dessa forma, Pedro é pai de Maria, André e Marcelo que são irmãos Maria, André e Marcelo que são irmãos entre si. No sentido inverso, Rodrigo, entre si. No sentido inverso, Rodrigo, Márcia e Viviane são filhos de Maria e Márcia e Viviane são filhos de Maria e netos de Pedro. Para conhecermos os netos de Pedro. Para conhecermos os antepassadosantepassados de um nodo, basta de um nodo, basta identificarmos todos os nodos ao longo do identificarmos todos os nodos ao longo do caminho entre a raiz e este nodo. Ex: os caminho entre a raiz e este nodo. Ex: os antepassadosantepassados de Cláudio são: Pedro, de Cláudio são: Pedro, Maria e Viviane. Maria e Viviane.

Page 5: Árvore Binária de Busca

E também...E também...

Um conceito importante no estudo de Um conceito importante no estudo de árvores é o conceito de árvores é o conceito de nívelnível, que , que representa a distância do nodo até a raiz. representa a distância do nodo até a raiz. Por definição, a raiz da árvore tem nível 0. Por definição, a raiz da árvore tem nível 0. Na figura que vimos, os nodos Maria, Na figura que vimos, os nodos Maria, André e Marcelo têm nível 1, os nodos André e Marcelo têm nível 1, os nodos Rodrigo, Márcia, Viviane, Cézar e Aide tem Rodrigo, Márcia, Viviane, Cézar e Aide tem nível 2, assim por diante. O nodo de maior nível 2, assim por diante. O nodo de maior nível nos fornece a altura (ou nível nos fornece a altura (ou profundidade) da árvore.profundidade) da árvore.

Page 6: Árvore Binária de Busca

Exercício 1Exercício 1

Exercício 1Exercício 1: : Tente construir uma árvore com base nas informações abaixo:Tente construir uma árvore com base nas informações abaixo: O nodo C tem grau 3.O nodo C tem grau 3. O nodo X é neto de C e filho de B.O nodo X é neto de C e filho de B. O avô de B é A.O avô de B é A. O nodo A tem altura 0 e T tem altura 1.O nodo A tem altura 0 e T tem altura 1. Os antepassados de P são A,T e K, que são também Os antepassados de P são A,T e K, que são também

antepassados de H.antepassados de H. T tem grau 2, e um dos seus filhos é o nodo S.T tem grau 2, e um dos seus filhos é o nodo S. O nodo G tem 2 sub-árvores que são netos de C.O nodo G tem 2 sub-árvores que são netos de C. D é irmão de G, que é uma folha.D é irmão de G, que é uma folha. E e F tem graus 0 e 1 respectivamente e são também netos E e F tem graus 0 e 1 respectivamente e são também netos

do nodo C.do nodo C. O nodo N tem nível 4.O nodo N tem nível 4.

Page 7: Árvore Binária de Busca

Exercício 2Exercício 2

Page 8: Árvore Binária de Busca

Percurso em uma Árvore BináriaPercurso em uma Árvore Binária

Existem três ordens tradicionais de Existem três ordens tradicionais de percurso em árvores binárias: percurso em árvores binárias:

Pré-ordem ou prefixaPré-ordem ou prefixa Simétrica ou InfixaSimétrica ou Infixa Pós-ordem ou Pós-fixa.Pós-ordem ou Pós-fixa.

Page 9: Árvore Binária de Busca

Ordens:Ordens: -Prefixa: -Prefixa: visita a raizvisita a raiz visita a sub-árvore à esquerdavisita a sub-árvore à esquerda visita a sub-árvore à direitavisita a sub-árvore à direita -Infixa: -Infixa: visita a sub-árvore à esquerdavisita a sub-árvore à esquerda visita a raizvisita a raiz visita a sub-árvore à direitavisita a sub-árvore à direita -Pós-fixa: -Pós-fixa: visita a sub-árvore à esquerdavisita a sub-árvore à esquerda visita a sub-árvore à direitavisita a sub-árvore à direita visita a raizvisita a raiz

Page 10: Árvore Binária de Busca

Observe a seguinte árvore:Observe a seguinte árvore:

A

B C

D E F G

Prefixa: A B D E C F G

Infixa: D B E A F C G

Pós-fixa: D E B F G C A

Page 11: Árvore Binária de Busca

ExercíciosExercícios

1.) Uma árvore binária de pesquisa tem 10 nodos. Os nodos foram inseridos na seguinte ordem: F, C, E, F, G, A, B, I, H, J. Desenhe a respectiva árvore.

2.) Faça o percurso em pré-ordem da árvore acima.3.) Monte uma árvore binária de pesquisa (desenhe)

inserindo os nós abaixo na ordem apresentada:a) 14, 15, 4, 9, 7, 18, 3, 5, 16, 4, 20, 17.b) 20, 15, 50, 40, 13, 17, 45, 35, 12, 14, 47, 46 e 60

Page 12: Árvore Binária de Busca

Outros ExercíciosOutros Exercícios

Page 13: Árvore Binária de Busca

Exercícios - ContinuaçãoExercícios - Continuação

5.) Faça os seguintes percursos na árvore acima:a) percurso in-ordemb) percurso pos-odem

Page 14: Árvore Binária de Busca

Exercícios - ContinuaçãoExercícios - Continuação

6.) Ache as expressões na notação (1) infixa, (2) polonesa (pré-fixa) e (3) polonesa reversa (pós-fixa da árvore abaixo):

Page 15: Árvore Binária de Busca

Exercícios - continuaçãoExercícios - continuação

Desenhe a árvore que representa aexpressão: [ (x – 2) * 3 ] + (5 + 4) [ (2 * x – 3 * y) + 4 * z ] + 1

Page 16: Árvore Binária de Busca

Árvores binárias balanceadas - Árvores binárias balanceadas - AVLAVL

Balanceamento Dinâmico: AVL

Árvore AVL em homenagem aos matemáticos russos (Adelson- Velskii e Landism -1962)

Uma árvore AVL é uma árvore binária de pesquisa onde a diferença em altura entre as subárvores esquerda e direita é no máximo 1 (positivo ou negativo).

A essa diferença chamamos de “fator de balanceamento” de n (FatBal (n)).

Essa informação deverá constar em cada nó de uma árvore balanceada

Page 17: Árvore Binária de Busca

AVLAVL

Assim, para cada nodo podemos definir um fator de balanceamento (FB), que vem a ser um número inteiro igual a FB(nodo p) = altura(subárvore direita p) -

altura(subárvore esquerda p)

O Fator de uma folha é sempre Zero (0)