Você está na página 1de 2

Resolucao de Exercícios - Percurso

http://www.icmc.usp.br/~sce182/arbtres.html

Índice > Árvore > Árvore Binária > Resolução de Exercícios - Percurso

Instituto de Ciências Matemáticas de São Carlos Departamento de Computação e Estatística SCE182 - Algoritmos e Estruturas de Dados 1 Profs. Resp.: Graça Pimentel e Maria Cristina

Resolução de Exercícios - Percurso

1) Escrever o algoritmo de visita em Pré-Ordem utilizando alocação dinâmica mas sem utilizar procedimentos recursivos. Utilizar pilha para saber o endereço da subárvore que resta à direita.

processar raiz Apara saber o endereço da subárvore que resta à direita. guardar A para poder acessar C

guardar A para poder acessar C depoisda subárvore que resta à direita. processar raiz A passa à B e processa essa subárvore

passa à B e processa essa subárvoreprocessar raiz A guardar A para poder acessar C depois idem para D retorna B (topo

idem para Dpoder acessar C depois passa à B e processa essa subárvore retorna B (topo da pilha)

retorna B (topo da pilha) para acessar D que é a subárvore esquerdaC depois passa à B e processa essa subárvore idem para D Var A: array[1 max]

Var A: array[1

max]

pont, raiz:Pno;

topo: 0

max;

of Pno; { qual o valor de max ????}

Begin

topo:=0;

pont:=raiz; acabou:=(raiz=nil); While not acabou do Begin While pont <> nil do Begin Processa(pont^.info);

topo:=topo+1;

A[topo]:=pont; Pont:=pont^.esq; End; If (topo <> 0) Then Begin pont:=A[topo]^.dir;

topo:=topo-1;

End Else acabou:=true; End;

End;

2) Escrever uma função recursiva que calcule a altura de uma árvore binária dada. A altura de uma árvore é igual ao máximo nível de seus nós.

Function h(r:Pno):integer; Var altE, altD: integer; Begin If r=nil Then

h:=0

Else Begin altE:=h(r^.esq); altD:=h(r^.dir); h:=max(altE, altD) + 1; End;

End;

Resolucao de Exercícios - Percurso

Resolucao de Exercícios - Percurso Árvore Binária http://www.icmc.usp.br/~sce182/arbtres.html 2 de 2 25/2/2008 20:35

Árvore Binária

http://www.icmc.usp.br/~sce182/arbtres.html