Árvores Binárias: Construção e Percursos
-
Upload
miranda-tyler -
Category
Documents
-
view
46 -
download
0
description
Transcript of Árvores Binárias: Construção e Percursos
04/20/23 EDA - Prof. Paulemir Campos 1
Árvores Binárias:Construção e Percursos
UPE – Caruaru – Sistemas de InformaçãoDisciplina: Estrutura de Dados e ArquivoProf.: Paulemir G. Campos
04/20/23 EDA - Prof. Paulemir Campos 2
Árvores Binárias: Definições
São estruturas de dados onde existe uma relação hierárquica entre seus elementos constituíntes, chamados nós;
Há um nó principal, chamado raiz da árvore;
A partir da raiz da árvore, cada nó pode ter no máximo dois nós, chamados filhos esquerdo e direito.
04/20/23 EDA - Prof. Paulemir Campos 3
Árvores Binárias: Definições
Por sua vez, os nós à esquerda do nó raiz constituem a Sub-Árvore Esquerda e os nós à direita do nó raiz formam a Sub-Árvore Direita;
Contudo, a raiz de uma árvore binária e suas respectivas sub-árvores esquerda e direita devem formar sub-conjuntos finitos e disjuntos de nós.
04/20/23 EDA - Prof. Paulemir Campos 4
Árvores Binárias: Exemplos
E
H I
C
FD
G
B
A
Raiz da Árvore T
Sub-Árvore Direita
Sub-Árvore
Esquerda
A
B
D
G
C
FE
H I
04/20/23 EDA - Prof. Paulemir Campos 5
Árvores Binárias: Exemplos
B
A A
B
Raiz da Árvore T1
Filho Direito ou Sub-Árvore Direita de T2
Filho Esquerdo ou Sub-Árvore Esquerda de T1
A
B B
A
Raiz da Árvore T2
Note que as árvores binárias T1 e T2 são diferentes, pois, apesar de terem o mesmo
conteúdo na raiz, o conteúdo de seus
respectivos nós filhos direito e esquerdo são diferentes.
T1 T2
04/20/23 EDA - Prof. Paulemir Campos 6
Árvores Binárias: Contra exemplos
B
A
C
FD
G H
E
I
B
A
C
FD
G
E
I
Exemplos de estruturas que não são árvores binárias.
Sub-Árvore
Esquerda Sub-Árvore
Esquerda
Sub-Árvore Direita
Sub-Árvore Direita
04/20/23 EDA - Prof. Paulemir Campos 7
Árvores Binárias: Características
Possuem um ponteiro para o nó raiz da árvore (alocação dinâmica);
Cada nó pode ter até dois filhos; Raiz e Sub-Árvores Direita e
Esquerda devem constituir conjuntos disjuntos;
Em informática, crescem de cima para baixo, já que a raiz fica no topo (nível zero).
04/20/23 EDA - Prof. Paulemir Campos 8
Árvores Binárias: Nós
O grau de um nó representa o seu número de filhos; Ex.: Um nó de grau 2 indica que ele
tem dois filhos. Tipos de nós:
Folhas ou Externos – Não tem filhos. Não-Folhas ou Internos – Tem ao
menos um filho.
04/20/23 EDA - Prof. Paulemir Campos 9
Árvores Binárias: Profundidade
A profundidade ou altura de uma árvore binária é determinada pelo seu maior nível.
B
A
C
FD
G H
E
I
Nível 0
Nível 1
Nível 2
Nível 3
A profundidade ou altura (h) da árvore binária acima é 3 (h=3).
04/20/23 EDA - Prof. Paulemir Campos 10
Árvores Binárias: Tipos
Árvore Estritamente Binária: Todo nó não-folha
deve ter sub-árvores esquerda e direita não vazias.
B
A
C
ED
F G
04/20/23 EDA - Prof. Paulemir Campos 11
Árvores Binárias: Tipos
Árvore Binária Completa: É uma árvore
estritamente binária em que todas as folhas estão no nível máximo da árvore.
A
C
GF
B
D E
04/20/23 EDA - Prof. Paulemir Campos 12
Árvores Binárias: Tipos Árvore Binária
Quase Completa: 1 – Todas as folhas
estão no último ou penúltimo níveis;
2 – E, para cada nó com descendente direito no último nível, todos os descendentes esquerdos folhas também estiverem no último nível.
A
C
GF
B
D E
H I
04/20/23 EDA - Prof. Paulemir Campos 13
Árvores Binárias Completas
Cálculo do Número de Nós: O número de nós
(n) é obtido com a fórmula abaixo, sendo fornecida a altura (h) da mesma.
A
C
GF
B
D E
12 1hn Ex.: Na árvore acima de altura h=2, obtemos facilmente com a fórmula ao lado que o número de nós desta árvore binária completa é n=7.
04/20/23 EDA - Prof. Paulemir Campos 14
Árvores Binárias Completas
Cálculo da Altura: Sabendo-se o número
de nós (n), pode-se com a fórmula abaixo obter-se a sua altura (h).
12log 1nh
Ex.: Na árvore binária completa acima, cujo número de nós é n=7, obtemos com a fórmula ao lado que sua altura é h=2.
A
C
GF
B
D E
04/20/23 EDA - Prof. Paulemir Campos 15
Definindo o tipo da estrutura:
defina estrutura no {caracter dadoponteiro estrutura no esquerdo, direito
} tArvore
Árvores Binárias: Criação
04/20/23 EDA - Prof. Paulemir Campos 16
Alocando memória dinamicamente
ponteiro tArvore raiz
raiz = aloque(tArvore)
Árvores Binárias: Criação
04/20/23 EDA - Prof. Paulemir Campos 17
Criando uma árvore binária:ponteiro tArvore CriaArvore(caracter
novo){ponteiro tArvore no no = aloque(tArvore)no->dado = novono->esquerdo = NULLno->direito = NULLretorne no
}
Árvores Binárias: Criação
04/20/23 EDA - Prof. Paulemir Campos 18
Insere_Esquerda(ponteiro tArvore raiz, caracter atual, caracter novo){ponteiro tArvore folha se (raiz!=NULL){
se (raiz->dado==atual){ /* Encontrou o nó procurado */se (raiz->esquerdo==NULL){
folha = CriaArvore(novo)raiz->esquerdo = folha
} senão escreva(“Inserção inválida”)} senão { Insere_Esquerda(raiz->esquerdo, atual, novo)
Insere_Esquerda(raiz->direito, atual, novo) }}
}OBS.: Insere à direita é análogo a este procedimento.
Árvores Binárias: Insere à Esquerda
04/20/23 EDA - Prof. Paulemir Campos 19
Árvores Binárias: Percursos
Principais formas de se percorrer uma árvore binária não vazia:
Passeio Pré-Fixo Passeio Central Passeio Pós-Fixo
04/20/23 EDA - Prof. Paulemir Campos 20
Efetua-se o procedimento recursivo, enquanto possível:
Visita-se a raiz; Percorre-se a sub-árvore esquerda em
ordem pré-fixa; Percorre-se a sub-árvore direita em ordem
pré-fixa.
Árvores Binárias: Passeio Pré-Fixo (r-e-d)
04/20/23 EDA - Prof. Paulemir Campos 21
Efetua-se o procedimento recursivo, enquanto possível:
Percorre-se a sub-árvore esquerda em ordem central;
Visita-se a raiz; Percorre-se a sub-árvore direita em
ordem central.
Árvores Binárias: Passeio Central (e-r-d)
04/20/23 EDA - Prof. Paulemir Campos 22
Efetua-se o procedimento recursivo, enquanto possível:
Percorre-se a sub-árvore esquerda em ordem pós-fixa;
Percorre-se a sub-árvore direita em ordem pós-fixa;
Visita-se a raiz.
Árvores Binárias: Passeio Pós-Fixo (e-d-r)
04/20/23 EDA - Prof. Paulemir Campos 23
E
H I
C
FD
G
B
A
Pré-Fixo (r-e-d): ABDGCEHIF
Central (e-r-d): DGBAHEICF
Pós-Fixo (e-d-r): GDBHIEFCA
Árvores Binárias: Exemplos de Passeios
04/20/23 EDA - Prof. Paulemir Campos 24
Szwarcfiter, J. L.; Markenzon, L. Estruturas de Dados e seus Algoritmos. Rio de Janeiro: LTC, 2a. ed., 1994.
Veloso, P. et al. Estrutura de Dados. Rio de Janeiro: Editora Campus, 1996.
Referências