Escolar Documentos
Profissional Documentos
Cultura Documentos
rvore Binria
Definio
As rvores constituem estruturas no sequenciais com maior aplicao em computao sendo as rvores binrias as mais comuns. Uma rvore T dita binria tal que:
T = e a rvore dita vazia, ou Existe um n especial r, chamado raiz de T, e os restantes podem ser divididos em dois subconjuntos distintos, TrE e TrD, a subrvores esquerda e a direita de r, respectivamente, as quais so tambm rvores binrias.
Prof. Alcione Ferreira Algoritmos e Estruturas de Dados II 2
A B D C E
Definio
Se v o n tal que alguma subrvore de v vazia, ento v se localiza ou no ltimo ou no penltimo nvel da rvore
Estritamente Binria
Binria Completa
Binria Cheia
Prof. Alcione Ferreira Algoritmos e Estruturas de Dados II 5
Representao
ARVORE_BIN Registro: chave inteiro; esq ARVORE_BIN; dir ARVORE_BIN; altura inteiro; Fim_Registro;
Percurso
Para percorrer uma rvore binria deve-se visitar cada um de seus ns para fazer essa visita utilizaremos 3 tipos de percursos:
Percurso em Pr Ordem
Para utilizar esse tipo de percurso iremos seguir os seguintes passos:
Visitar a raiz; Percorrer sua subrvore esquerda, em pr ordem; Percorrer sua subrvore direita, em pr ordem
Uma aplicao bem interessante para esse tipo de percurso pode ser visualizado em uma rvore de expresses. O resultado desse percurso corresponde a notao polonesa.
Prof. Alcione Ferreira Algoritmos e Estruturas de Dados II 8
Procedimento PreOrdem(no: ARVORE_BIN) Incio visitar(no); Se no^.esq Faa PreOrdem(no^.esq); Fim_Se Se no^.dir Faa PreOrdem(no^.dir); Fim_Se Fim
Prof. Alcione Ferreira Algoritmos e Estruturas de Dados II 9
Percorrer sua subrvore esquerda, em ordem simtrica; Visitar raiz; Percorrer sua subrvore direita, em ordem simtrica.
10
Procedimento Simet(no: ARVORE_BIN) Incio Se no^.esq Faa Simet(no^.esq); Fim_Se Visitar(no); Se no^.dir Faa Simet(no^.dir); Fim_Se Fim
Prof. Alcione Ferreira Algoritmos e Estruturas de Dados II 11
Percurso em Ps Ordem
Neste ltimo tipo a visita da raiz feita em ltima etapa, vejamos os passos:
Percorrer sua subrvore esquerda, em ps ordem; Percorrer sua subrvore direita, em ps ordem; Visitar a raiz.
12
Procedimentos PosOrdem(no: ARVORE_BIN) Incio Se no^.esq Faa PosOrdem(no^.esq); Fim_Se Se no^.dir Faa PosOrdem(no^.dir); Fim_Se Visita (no); Fim
Prof. Alcione Ferreira Algoritmos e Estruturas de Dados II 13
Procedimento Visita(no: ARVORE_BIN) Variveis altD, altE: inteiro; Incio Se no^.esq Faa altE (no^.esq)^.altura; Fim_Se Seno Faa altE 0; Fim_Seno Se no^.dir Faa altD (no^.dir)^.altura; Fim_Se Seno Faa altD 0; Fim_Seno Se altE > altD Faa no^.altura altE + 1; Fim_Se Seno Faa no^.altura altD + 1; Fim_Seno Fim
Prof. Alcione Ferreira Algoritmos e Estruturas de Dados II 14