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

Aula 02 rvores e rvores

Binrias
DCC 405 Estrutura de Dados II
Prof. Acauan Ribeiro
acauan.ribeiro@gmail.com
1
Introduo - rvores
Os Tipos Abstratos de Dados estudados foram Listas
Simplesmente e Duplamente Encadeadas, Fila e Pilha,
sendo que o que muda nesses Tipos as operaes, pois a
Estrutura de Dados base para tais tipos so as listas
lineares, sejam elas estticas ou dinmicas.
Embora tais listas apresentem vantagens quanto ao
uso, manipulao e alocao, ainda possuem
problemas:
Lista encadeada
Eficiente para insero e remoo dinmica de elementos,
mas ineficiente para busca;
Lista seqencial (ordenada)
Eficiente para busca, mas ineficiente para insero e
remoo de elementos
2
Introduo rvores (Motivao)
Em busca de contornar essas desvantagens, foi
proposto o conceito de rvores, que apresenta soluo
eficiente para insero, remoo e busca. Vale
destacar que as rvores possuem uma representao
no linear.
As rvores so estruturas de dados adequadas para a
representao de hierarquias. A forma mais natural
para definirmos uma estrutura de rvore usando
recursividade.
Uma rvore composta por um conjunto de ns.
Existe um n r, denominado raiz, que contm zero ou
mais sub-rvores, cujas razes so ligadas diretamente
a r
3
rvores Conceitos
Estrutura no linear
Hierrquica
Recursiva
4
rvores Conceitos
Nodos interligados de maneira hierrquica
Nodo superior (raiz / pai), apontando para
os seus nodos filhos (folhas / filho).
5
Analogia no mundo real
Estrutura organizacional
de uma empresa
Departamentos, setores,
sees, etc.


Organizao de um livro
Partes, captulos, sees,
pargrafos
6
Mais exemplos:
7
Mais exemplos:
Estrutura de diretrio no Windows 7
Arquivos Linux
8
Mais exemplos:
9
Representao
10
Tipos de nodos (ns)
RAIZ
N INTERNO
(GALHO)
FOLHA
11
Definies
Raz: um nodo sem pai
Nodo: um elemento qualquer
Folha: um n que possui grau zero, ou seja,
suas subrvores so vzia.
Sub-rvore: formada por todos os nodos filhos
a partir de um nodo qualquer
12
Definio geral
Um nodo sem filhos e sem pai uma rvore
vazia.
Um nodo com qualquer nmero de subrvores
descendentes uma rvore
13
Esquema Geral
14
Subrvores
Sub-rvore:
aquela que se
forma a partir de
um determinado
n.
A rvore A possui 2 subrvores:
A = {B, C }

rvore C possui 3 subrvores:
C = {D, E, F}
Onde
D = {G,H}
F = {I} 15
Exemplo
16
Exemplos de rvores
17
Exemplo (rvore de expresso)
Representao da expresso aritmtica:
(a + (b * (c / d - e)))
18
Caminho em rvore
Nota: S
existe um
caminho
desde a raiz
at um
determinado
n.
19
Altura de uma rvore
20
Altura de uma rvore
A altura da raiz 0
Por definio, a altura de uma rvore vazia -1
A
B C D
E F
L
G H I J
M N
Qual a altura da rvore?
My Documents My Computer
3 Floppy(A:)
Network
Apostila
Parte I Parte II Parte III
Recycle Bin
Desktop
Local Disk (C:) Local Disk (D:)
Compact Disk (E:)
Removable Disk (F:) Local Disk (I:) Local Disk (J:) Control Panel
Qual a altura da rvore?
21
Grau de uma rvore
O grau de uma rvore dado pela quantidade de descendentes
permitido a cada n, ou seja, o numero mximo de filho de um
n.
rvore Cheia: Uma rvore de grau d uma rvore cheia se possui o
nmero mximo de ns, isto , todos os ns tm nmero mximo
de filhos exceto as folhas, e todas as folhas esto na mesma altura.
rvore cheia de grau 2: implementao sequencial.
22
Grau de uma rvore
Qual o grau desta rvore?
23
rvores
Binrias
24
rvores Binrias
rvore binria um caso especial de rvore em
que nenhum nodo tem grau superior a 2, isto ,
nenhum nodo tem mais que dois filhos.
Adicionalmente, para rvores binrias existe um
"senso de posio", ou seja, distingue-se entre uma
subrvore esquerda e uma direita. Exemplos:
25
rvores Binrias
Uma rvore binria uma rvore que pode ser
nula, ou ento tem as seguintes caractersticas:
existe um nodo especial denominado raiz;
os demais nodos so particionados em T1, T2
estruturas disjuntas de rvores binrias;
T1 denominada subrvore esquerda e T2,
subrvore direita da raiz.
26
Exemplo rvore Binria
27
Terminologias
rvore estritamente binria: cada n tem grau
0 ou 2, ou seja, todo n tem 0 ou 2 filhos
28
Terminologias
rvore binria completa uma rvore estritamente
binria na qual todo n que apresente alguma sub-
rvore vazia est localizado no ltimo ou no
penltimo nvel da rvore
29
Terminologias
rvore binria cheia quando todos os ns
internos tem grau 2 e todas as folhas esto no
mesmo nvel
30
rvores
Binrias
Percurso em rvores
31
Percurso em rvore binria
Pr-ordem: visita a raiz, depois a sub-rvore da
esquerda e depois direita.
R E D

Em-ordem: visita a sub-rvore esquerda, depois a
raiz, e finalmente a sub-rvore direita.
E R D

Ps-ordem: visita a sub-rvore da esquerda,
depois da direita e por ultimo imprime a raiz.
E D - R
32
Exemplo de percurso pr-ordem
pr-ordem:
+ 1 * 6 2
R E D
33
Exemplo de percurso em-ordem
em-ordem:
+
1
* 6 2
E R D
34
Exemplo de percurso ps-ordem
ps-ordem:
+ 1 * 6 2
E D R
35
Arvore Binria: TAD
Tipo de dados abstrato da rvore binria:
Vazia: () A
// elemento, arvore esquerda direita
N: E SAE SAD A
Que rvore essa ?
A = N (5, Vazia, N(8, N(4, Vazia, Vazia), Vazia)))
36
Arvore Binria: TAD
Operaes assessoras:
sae:: A A // retorna a subarvore esquerda
sad:: A A // retorna a subarvore direita
element :: A E // retorno o elemento do n
37
Exerccio
38
Codificao
A rvore binria representado pela estrutura
abaixo.
39
Codificao
Operaes construtoras
40
Codificao
Operaes retornar os atributos da rvore.
41
Cdigo para visualizar uma rvore binria
deitada
42
Visualizao
43
Exerccios resolvidos
Ainda sem codificar em C ou Java a nossa
rvore, faremos os seguintes exerccios:
Podem fazer no papel ou bloco de notas, no
precisem compilar (apenas mentalmente).
Usando recursividade e apenas as quatro
operaes vistas anteriormente, vamos fazer os
seguintes exerccios.
44
Exerccios resolvidos
1. Some os valores dos elementos de uma
arvore binria
45
Exerccios resolvidos
2. Retorne a altura de uma rvore binaria. Onde a Altura
o tamanho do maior caminho desde a raiz at uma
folha. Por definio, a altura de uma rvore vazia -1.
46
Atividade
1) Implementar as funes vistas aqui, num
sistema que contenha um menu de opes:
Inserir
Somar ns das arvores
Imprimir Arvore
Altura da Arvore
47