Você está na página 1de 266

Estrutura de Dados

Prof. Me. Marcos Alves


marcos@ucdb.br
 Definição: uma árvore binária é um conjunto finito de nós (ou vértices) que:

 Ou é vazio;

 Ou consiste de uma raiz e duas árvores binárias disjuntas chamadas sub-

árvore esquerda e sub-árvore direita da raiz.


 Exemplo:
A

B C

D E F G

H I J

Estrutura de Dados Prof. Marcos Alves 2


 Definição: uma árvore binária é um conjunto finito de nós (ou vértices) que:

 Ou é vazio;

 Ou consiste de uma raiz e duas árvores binárias disjuntas chamadas sub-

árvore esquerda e sub-árvore direita da raiz.


 Exemplo:
A Raiz

B C

D E F G

H I J

Estrutura de Dados Prof. Marcos Alves 3


 Definição: uma árvore binária é um conjunto finito de nós (ou vértices) que:

 Ou é vazio;

 Ou consiste de uma raiz e duas árvores binárias disjuntas chamadas sub-

árvore esquerda e sub-árvore direita da raiz.


 Exemplo:
A Raiz

B C

sub-árvore D E F G
esquerda

H I J

Estrutura de Dados Prof. Marcos Alves 4


 Definição: uma árvore binária é um conjunto finito de nós (ou vértices) que:

 Ou é vazio;

 Ou consiste de uma raiz e duas árvores binárias disjuntas chamadas sub-

árvore esquerda e sub-árvore direita da raiz.


 Exemplo:
A Raiz

B C

sub-árvore D E F G sub-árvore
esquerda direita

H I J

Estrutura de Dados Prof. Marcos Alves 5


 Definição: uma árvore binária é um conjunto finito de nós (ou vértices) que:

 Ou é vazio;

 Ou consiste de uma raiz e duas árvores binárias disjuntas chamadas sub-

árvore esquerda e sub-árvore direita da raiz.


 Exemplo:
A Raiz

B C

sub-árvore D E F G sub-árvore
esquerda direita

H I J

Estrutura de Dados Prof. Marcos Alves 6


 As árvores binária A e A são diferentes.

B B

Estrutura de Dados Prof. Marcos Alves 7


 As árvores binária A e A são diferentes.

B B

 mas como árvores (mesmo ordenadas) são iguais. A

Estrutura de Dados Prof. Marcos Alves 8


 As árvores binária A e A são diferentes.

B B

 mas como árvores (mesmo ordenadas) são iguais. A

 Quantas árvores ordenadas podemos construir com 3 elementos cada?

Estrutura de Dados Prof. Marcos Alves 9


 As árvores binária A e A são diferentes.

B B

 mas como árvores (mesmo ordenadas) são iguais. A

 Quantas árvores ordenadas podemos construir com 3 elementos cada?

Estrutura de Dados Prof. Marcos Alves 10


 As árvores binária A e A são diferentes.

B B

 mas como árvores (mesmo ordenadas) são iguais. A

 Quantas árvores ordenadas podemos construir com 3 elementos cada?

Estrutura de Dados Prof. Marcos Alves 11


 As árvores binária A e A são diferentes.

B B

 mas como árvores (mesmo ordenadas) são iguais. A

 Quantas árvores ordenadas podemos construir com 3 elementos cada?

= 3!

Estrutura de Dados Prof. Marcos Alves 12


 As árvores binária A e A são diferentes.

B B

 mas como árvores (mesmo ordenadas) são iguais. A

 Quantas árvores ordenadas podemos construir com 3 elementos cada?

= 3! = 3!

Estrutura de Dados Prof. Marcos Alves 13


 As árvores binária A e A são diferentes.

B B

 mas como árvores (mesmo ordenadas) são iguais. A

 Quantas árvores ordenadas podemos construir com 3 elementos cada?

= 3! = 3! 2 * 3!

Estrutura de Dados Prof. Marcos Alves 14


 As árvores binária A e A são diferentes.

B B

 mas como árvores (mesmo ordenadas) são iguais. A

 Quantas árvores ordenadas podemos construir com 3 elementos cada?

= 3! = 3! 2 * 3! = 12 árvores

Estrutura de Dados Prof. Marcos Alves 15


 Quantas árvores binárias podemos construir com 3 elementos cada?

Estrutura de Dados Prof. Marcos Alves 16


 Quantas árvores binárias podemos construir com 3 elementos cada?

Estrutura de Dados Prof. Marcos Alves 17


 Quantas árvores binárias podemos construir com 3 elementos cada?

Estrutura de Dados Prof. Marcos Alves 18


 Quantas árvores binárias podemos construir com 3 elementos cada?

Estrutura de Dados Prof. Marcos Alves 19


 Quantas árvores binárias podemos construir com 3 elementos cada?

Estrutura de Dados Prof. Marcos Alves 20


 Quantas árvores binárias podemos construir com 3 elementos cada?

Estrutura de Dados Prof. Marcos Alves 21


 Quantas árvores binárias podemos construir com 3 elementos cada?

= 3!

Estrutura de Dados Prof. Marcos Alves 22


 Quantas árvores binárias podemos construir com 3 elementos cada?

= 3! = 3!

Estrutura de Dados Prof. Marcos Alves 23


 Quantas árvores binárias podemos construir com 3 elementos cada?

= 3! = 3! = 3!

Estrutura de Dados Prof. Marcos Alves 24


 Quantas árvores binárias podemos construir com 3 elementos cada?

= 3! = 3! = 3! = 3!

Estrutura de Dados Prof. Marcos Alves 25


 Quantas árvores binárias podemos construir com 3 elementos cada?

= 3! = 3! = 3! = 3! = 3!

Estrutura de Dados Prof. Marcos Alves 26


 Quantas árvores binárias podemos construir com 3 elementos cada?

= 3! = 3! = 3! = 3! = 3!

Estrutura de Dados Prof. Marcos Alves 27


 Quantas árvores binárias podemos construir com 3 elementos cada?

= 3! = 3! = 3! = 3! = 3!

5 * 3!

Estrutura de Dados Prof. Marcos Alves 28


 Quantas árvores binárias podemos construir com 3 elementos cada?

= 3! = 3! = 3! = 3! = 3!

5 * 3! = 30 árvores

Estrutura de Dados Prof. Marcos Alves 29


 LEMA: seja T uma árvore binária. Então,

B C

D E F G

Estrutura de Dados Prof. Marcos Alves 30


 LEMA: seja T uma árvore binária. Então,

a) O número máximo de nós no nível i é 2i - 1,  i ≥ 1.

B C

D E F G

Estrutura de Dados Prof. Marcos Alves 31


 LEMA: seja T uma árvore binária. Então,

a) O número máximo de nós no nível i é 2i - 1,  i ≥ 1.

a) 2i - 1
A

B C

D E F G

Estrutura de Dados Prof. Marcos Alves 32


 LEMA: seja T uma árvore binária. Então,

a) O número máximo de nós no nível i é 2i - 1,  i ≥ 1.

a) 2i - 1
i=1 A

B C

D E F G

Estrutura de Dados Prof. Marcos Alves 33


 LEMA: seja T uma árvore binária. Então,

a) O número máximo de nós no nível i é 2i - 1,  i ≥ 1.

a) 2i - 1
21 - 1 = 1 i=1 A

B C

D E F G

Estrutura de Dados Prof. Marcos Alves 34


 LEMA: seja T uma árvore binária. Então,

a) O número máximo de nós no nível i é 2i - 1,  i ≥ 1.

a) 2i - 1
21 - 1 = 1 i=1 A

i=2 B C

D E F G

Estrutura de Dados Prof. Marcos Alves 35


 LEMA: seja T uma árvore binária. Então,

a) O número máximo de nós no nível i é 2i - 1,  i ≥ 1.

a) 2i - 1
21 - 1 = 1 i=1 A

22 - 1 = 2 i=2 B C

D E F G

Estrutura de Dados Prof. Marcos Alves 36


 LEMA: seja T uma árvore binária. Então,

a) O número máximo de nós no nível i é 2i - 1,  i ≥ 1.

a) 2i - 1
21 - 1 = 1 i=1 A

22 - 1 = 2 i=2 B C

i=3 D E F G

Estrutura de Dados Prof. Marcos Alves 37


 LEMA: seja T uma árvore binária. Então,

a) O número máximo de nós no nível i é 2i - 1,  i ≥ 1.

a) 2i - 1
21 - 1 = 1 i=1 A

22 - 1 = 2 i=2 B C

23 - 1 = 4 i=3 D E F G

Estrutura de Dados Prof. Marcos Alves 38


 LEMA: seja T uma árvore binária. Então,

a) O número máximo de nós no nível i é 2i - 1,  i ≥ 1.

b) Se a altura de T é k, o número máximo de nós de T é 2k - 1.

a) 2i - 1
21 - 1 = 1 i=1 A

22 - 1 = 2 i=2 B C

23 - 1 = 4 i=3 D E F G

Estrutura de Dados Prof. Marcos Alves 39


 LEMA: seja T uma árvore binária. Então,

a) O número máximo de nós no nível i é 2i - 1,  i ≥ 1.

b) Se a altura de T é k, o número máximo de nós de T é 2k - 1.

a) 2i - 1
21 - 1 = 1 i=1 A
b)
i=2 k=3
22 - 1 = 2 B C

23 - 1 = 4 i=3 D E F G

Estrutura de Dados Prof. Marcos Alves 40


 LEMA: seja T uma árvore binária. Então,

a) O número máximo de nós no nível i é 2i - 1,  i ≥ 1.

b) Se a altura de T é k, o número máximo de nós de T é 2k - 1.

a) 2i - 1
21 - 1 = 1 i=1 A
b)
i=2 k=3
22 - 1 = 2 B C
2k - 1

23 - 1 = 4 i=3 D E F G

Estrutura de Dados Prof. Marcos Alves 41


 LEMA: seja T uma árvore binária. Então,

a) O número máximo de nós no nível i é 2i - 1,  i ≥ 1.

b) Se a altura de T é k, o número máximo de nós de T é 2k - 1.

a) 2i - 1
21 - 1 = 1 i=1 A
b)
i=2 k=3
22 - 1 = 2 B C
2k - 1 = 23 - 1

23 - 1 = 4 i=3 D E F G

Estrutura de Dados Prof. Marcos Alves 42


 LEMA: seja T uma árvore binária. Então,

a) O número máximo de nós no nível i é 2i - 1,  i ≥ 1.

b) Se a altura de T é k, o número máximo de nós de T é 2k - 1.

a) 2i - 1
21 - 1 = 1 i=1 A
b)
i=2 k=3
22 - 1 = 2 B C
2k - 1 = 23 - 1 = 7

23 - 1 = 4 i=3 D E F G

Estrutura de Dados Prof. Marcos Alves 43


 Cada nó é representado por:

Estrutura de Dados Prof. Marcos Alves 44


 Cada nó é representado por:
EProx Info DProx

Estrutura de Dados Prof. Marcos Alves 45


 Cada nó é representado por:
EProx Info DProx

Apontador para o filho esquerdo desse nó.

Estrutura de Dados Prof. Marcos Alves 46


 Cada nó é representado por:
EProx Info DProx

Chave
Apontador para o filho esquerdo desse nó.

Estrutura de Dados Prof. Marcos Alves 47


 Cada nó é representado por:
EProx Info DProx

Apontador para o filho direito desse nó.


Chave
Apontador para o filho esquerdo desse nó.

Estrutura de Dados Prof. Marcos Alves 48


 Cada nó é representado por:
EProx Info DProx

Apontador para o filho direito desse nó.


Chave A
Apontador para o filho esquerdo desse nó.
B C

D E F G

Estrutura de Dados Prof. Marcos Alves 49


 Cada nó é representado por:
EProx Info DProx

Apontador para o filho direito desse nó.


Chave A
Apontador para o filho esquerdo desse nó.
B C

A F G
D E

Estrutura de Dados Prof. Marcos Alves 50


 Cada nó é representado por:
EProx Info DProx

Apontador para o filho direito desse nó.


Chave A
Apontador para o filho esquerdo desse nó.
B C

A F G
D E

Estrutura de Dados Prof. Marcos Alves 51


 Cada nó é representado por:
EProx Info DProx

Apontador para o filho direito desse nó.


Chave A
Apontador para o filho esquerdo desse nó.
B C

A F G
D E

B C

Estrutura de Dados Prof. Marcos Alves 52


 Cada nó é representado por:
EProx Info DProx

Apontador para o filho direito desse nó.


Chave A
Apontador para o filho esquerdo desse nó.
B C

A F G
D E

B C

Estrutura de Dados Prof. Marcos Alves 53


 Cada nó é representado por:
EProx Info DProx

Apontador para o filho direito desse nó.


Chave A
Apontador para o filho esquerdo desse nó.
B C

A F G
D E

B C

D E

Estrutura de Dados Prof. Marcos Alves 54


 Cada nó é representado por:
EProx Info DProx

Apontador para o filho direito desse nó.


Chave A
Apontador para o filho esquerdo desse nó.
B C

A F G
D E

B C

D E F

Estrutura de Dados Prof. Marcos Alves 55


 Cada nó é representado por:
EProx Info DProx

Apontador para o filho direito desse nó.


Chave A
Apontador para o filho esquerdo desse nó.
B C

A F G
D E

B C

D E F G

Estrutura de Dados Prof. Marcos Alves 56


 Cada nó é representado por:
EProx Info DProx

Apontador para o filho direito desse nó.


Chave A
Apontador para o filho esquerdo desse nó.
B C

A F G
D E

B C

D E F G

Estrutura de Dados Prof. Marcos Alves 57


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.

Estrutura de Dados Prof. Marcos Alves 58


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:

Estrutura de Dados Prof. Marcos Alves 59


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1

Estrutura de Dados Prof. Marcos Alves 60


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1

Estrutura de Dados Prof. Marcos Alves 61


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2

Estrutura de Dados Prof. Marcos Alves 62


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2

1 1

Estrutura de Dados Prof. Marcos Alves 63


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2

1 1

Estrutura de Dados Prof. Marcos Alves 64


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2

1 1

2 3

Estrutura de Dados Prof. Marcos Alves 65


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2 k=3

1 1

2 3

Estrutura de Dados Prof. Marcos Alves 66


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2 k=3

1 1 1

2 3

Estrutura de Dados Prof. Marcos Alves 67


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2 k=3

1 1 1

2 3 2

Estrutura de Dados Prof. Marcos Alves 68


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2 k=3

1 1 1

2 3 2 3

Estrutura de Dados Prof. Marcos Alves 69


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2 k=3

1 1 1

2 3 2 3

Estrutura de Dados Prof. Marcos Alves 70


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2 k=3

1 1 1

2 3 2 3

4 5

Estrutura de Dados Prof. Marcos Alves 71


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2 k=3

1 1 1

2 3 2 3

4 5 6

Estrutura de Dados Prof. Marcos Alves 72


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2 k=3

1 1 1

2 3 2 3

4 5 6 7

Estrutura de Dados Prof. Marcos Alves 73


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2 k=3

1 1 1

2 3 2 3

4 5 6 7
 Podemos numerar os nós de uma árvore completa da seguinte forma:

Estrutura de Dados Prof. Marcos Alves 74


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2 k=3

1 1 1

2 3 2 3

4 5 6 7
 Podemos numerar os nós de uma árvore completa da seguinte forma:

 num( raiz ) = 1

Estrutura de Dados Prof. Marcos Alves 75


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2 k=3

1 1 1

2 3 2 3

4 5 6 7
 Podemos numerar os nós de uma árvore completa da seguinte forma:

 num( raiz ) = 1
  nó x:

Estrutura de Dados Prof. Marcos Alves 76


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2 k=3

1 1 1

2 3 2 3

4 5 6 7
 Podemos numerar os nós de uma árvore completa da seguinte forma:

 num( raiz ) = 1
  nó x:
▪ num( filho esquerdo de x ) = 2 * num( x )

Estrutura de Dados Prof. Marcos Alves 77


 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2 k=3

1 1 1

2 3 2 3

4 5 6 7
 Podemos numerar os nós de uma árvore completa da seguinte forma:

 num( raiz ) = 1
  nó x:
▪ num( filho esquerdo de x ) = 2 * num( x )
▪ num( filho direito de x ) = 2 * num( x ) + 1
Estrutura de Dados Prof. Marcos Alves 78
 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2 k=3

1 1 1

2 3 2 3

4 5 6 7
 Podemos numerar os nós de uma árvore completa da seguinte forma:

 num( raiz ) = 1
  nó x:
▪ num( filho esquerdo de x ) = 2 * num( x ) ▪ pai( x ) =  num( x ) / 2 
▪ num( filho direito de x ) = 2 * num( x ) + 1
Estrutura de Dados Prof. Marcos Alves 79
 Definição: uma árvore binária completa é uma árvore binária de altura k e 2k – 1
nós.
 Exemplos:
k=1 k=2 k=3

1 1 1

2 3 2 3

4 5 6 7
 Podemos numerar os nós de uma árvore completa da seguinte forma:

 num( raiz ) = 1
  nó x:
▪ num( filho esquerdo de x ) = 2 * num( x ) ▪ pai( x ) =  num( x ) / 2 
▪ num( filho direito de x ) = 2 * num( x ) + 1
Estrutura de Dados Prof. Marcos Alves 80
 Definição: uma árvore binária quase completa é uma árvore binária de
altura k e n nós é uma árvore binária de altura k com nós numerados de 1 a n.

Estrutura de Dados Prof. Marcos Alves 81


 Definição: uma árvore binária quase completa é uma árvore binária de
altura k e n nós é uma árvore binária de altura k com nós numerados de 1 a n.

 Exemplo: k = 4 e n = 10

Estrutura de Dados Prof. Marcos Alves 82


 Definição: uma árvore binária quase completa é uma árvore binária de
altura k e n nós é uma árvore binária de altura k com nós numerados de 1 a n.

 Exemplo: k = 4 e n = 10
1

Estrutura de Dados Prof. Marcos Alves 83


 Definição: uma árvore binária quase completa é uma árvore binária de
altura k e n nós é uma árvore binária de altura k com nós numerados de 1 a n.

 Exemplo: k = 4 e n = 10
1

Estrutura de Dados Prof. Marcos Alves 84


 Definição: uma árvore binária quase completa é uma árvore binária de
altura k e n nós é uma árvore binária de altura k com nós numerados de 1 a n.

 Exemplo: k = 4 e n = 10
1

2 3

Estrutura de Dados Prof. Marcos Alves 85


 Definição: uma árvore binária quase completa é uma árvore binária de
altura k e n nós é uma árvore binária de altura k com nós numerados de 1 a n.

 Exemplo: k = 4 e n = 10
1

2 3

Estrutura de Dados Prof. Marcos Alves 86


 Definição: uma árvore binária quase completa é uma árvore binária de
altura k e n nós é uma árvore binária de altura k com nós numerados de 1 a n.

 Exemplo: k = 4 e n = 10
1

2 3

4 5

Estrutura de Dados Prof. Marcos Alves 87


 Definição: uma árvore binária quase completa é uma árvore binária de
altura k e n nós é uma árvore binária de altura k com nós numerados de 1 a n.

 Exemplo: k = 4 e n = 10
1

2 3

4 5 6

Estrutura de Dados Prof. Marcos Alves 88


 Definição: uma árvore binária quase completa é uma árvore binária de
altura k e n nós é uma árvore binária de altura k com nós numerados de 1 a n.

 Exemplo: k = 4 e n = 10
1

2 3

4 5 6 7

Estrutura de Dados Prof. Marcos Alves 89


 Definição: uma árvore binária quase completa é uma árvore binária de
altura k e n nós é uma árvore binária de altura k com nós numerados de 1 a n.

 Exemplo: k = 4 e n = 10
1

2 3

4 5 6 7

Estrutura de Dados Prof. Marcos Alves 90


 Definição: uma árvore binária quase completa é uma árvore binária de
altura k e n nós é uma árvore binária de altura k com nós numerados de 1 a n.

 Exemplo: k = 4 e n = 10
1

2 3

4 5 6 7

8 9

Estrutura de Dados Prof. Marcos Alves 91


 Definição: uma árvore binária quase completa é uma árvore binária de
altura k e n nós é uma árvore binária de altura k com nós numerados de 1 a n.

 Exemplo: k = 4 e n = 10
1

2 3

4 5 6 7

8 9 10

Estrutura de Dados Prof. Marcos Alves 92


 Definição: uma árvore binária quase completa é uma árvore binária de
altura k e n nós é uma árvore binária de altura k com nós numerados de 1 a n.

 Exemplo: k = 4 e n = 10
1

2 3

4 5 6 7

8 9 10

 Podemos armazenar os elementos de uma árvore binária completa ou quase completa


num vetor V tal que o i-ésimo elemento x é armazenado na posição num(x) de V.

Estrutura de Dados Prof. Marcos Alves 93


Estrutura de Dados Prof. Marcos Alves 94
1. Função para contar nós em árvore binária

Estrutura de Dados Prof. Marcos Alves 95


1. Função para contar nós em árvore binária
Função contaNos( noArvore ↑T )

se T = NULO

então retorna 0;

senão retorna (1 + contaNos(Eprox(T)) + contaNos(Dprox(T)));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 96


1. Função para contar nós em árvore binária
Função contaNos( noArvore ↑T )

se T = NULO

então retorna 0;

senão retorna (1 + contaNos(Eprox(T)) + contaNos(Dprox(T)));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 97


1. Função para contar nós em árvore binária
Função contaNos( noArvore ↑T )

se T = NULO

então retorna 0;

senão retorna (1 + contaNos(Eprox(T)) + contaNos(Dprox(T)));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 98


1. Função para contar nós em árvore binária
Função contaNos( noArvore ↑T )

se T = NULO

então retorna 0;

senão retorna (1 + contaNos(Eprox(T)) + contaNos(Dprox(T)));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 99


1. Função para contar nós em árvore binária
Função contaNos( noArvore ↑T )

se T = NULO

então retorna 0;

senão retorna (1 + contaNos(Eprox(T)) + contaNos(Dprox(T)));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 100


1. Função para contar nós em árvore binária
Função contaNos( noArvore ↑T )

se T = NULO

então retorna 0;

senão retorna (1 + contaNos(Eprox(T)) + contaNos(Dprox(T)));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 101


1. Função para contar nós em árvore binária
Função contaNos( noArvore ↑T )

se T = NULO

então retorna 0;

senão retorna (1 + contaNos(Eprox(T)) + contaNos(Dprox(T)));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 102


1. Função para contar nós em árvore binária
Função contaNos( noArvore ↑T )

se T = NULO

então retorna 0;

senão retorna (1 + contaNos(Eprox(T)) + contaNos(Dprox(T)));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 103


1. Função para contar nós em árvore binária
Função contaNos( noArvore ↑T )

se T = NULO

então retorna 0;

senão retorna (1 + contaNos(Eprox(T)) + contaNos(Dprox(T)));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 104


1. Função para contar nós em árvore binária
Função contaNos( noArvore ↑T )

se T = NULO

então retorna 0;

senão retorna (1 + contaNos(Eprox(T)) + contaNos(Dprox(T)));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 105


Função contaNos( noArvore ↑T )
Info(T) = ‘A’
se T = NULO
então retorna 0;
senão retorna (1 +
contaNos(Eprox(T)) +
contaNos(Dprox(T)));
fimSe
fimFunção

T
A

B C

D E F G

Estrutura de Dados Prof. Marcos Alves 106


Função contaNos( noArvore ↑T )
Info(T) = ‘A’
se T = NULO
Info(T) = ‘B’
então retorna 0;
senão retorna (1 +
contaNos(Eprox(T)) +
contaNos(Dprox(T)));
fimSe
fimFunção

T
B C

D E F G

Estrutura de Dados Prof. Marcos Alves 107


Função contaNos( noArvore ↑T )
Info(T) = ‘A’
se T = NULO
Info(T) = ‘B’
então retorna 0;
Info(T) = ‘D’ senão retorna (1 +
contaNos(Eprox(T)) +
contaNos(Dprox(T)));
fimSe
fimFunção

B C

T
D E F G

Estrutura de Dados Prof. Marcos Alves 108


Função contaNos( noArvore ↑T )
Info(T) = ‘A’
se T = NULO
Info(T) = ‘B’
então retorna 0;
Info(T) = ‘D’ senão retorna (1 +
Eprox NULO  RETORNA 0 contaNos(Eprox(T)) +
contaNos(Dprox(T)));
fimSe
fimFunção

B C

D E F G

Estrutura de Dados Prof. Marcos Alves 109


Função contaNos( noArvore ↑T )
Info(T) = ‘A’
se T = NULO
Info(T) = ‘B’
então retorna 0;
Info(T) = ‘D’ senão retorna (1 +
Eprox NULO  RETORNA 0 contaNos(Eprox(T)) +
contaNos(Dprox(T)));
Dprox NULO  RETORNA 0 fimSe
fimFunção

B C

D E F G

Estrutura de Dados Prof. Marcos Alves 110


Função contaNos( noArvore ↑T )
Info(T) = ‘A’
se T = NULO
Info(T) = ‘B’
então retorna 0;
Info(T) = ‘D’ senão retorna (1 +
Eprox NULO  RETORNA 0 contaNos(Eprox(T)) +
contaNos(Dprox(T)));
Dprox NULO  RETORNA 0 fimSe
fimFunção
RETORNA 1 + 0 + 0

B C

T
D E F G

Estrutura de Dados Prof. Marcos Alves 111


Função contaNos( noArvore ↑T )
Info(T) = ‘A’
se T = NULO
Info(T) = ‘B’
então retorna 0;
Info(T) = ‘D’ senão retorna (1 +
Eprox NULO  RETORNA 0 contaNos(Eprox(T)) +
contaNos(Dprox(T)));
Dprox NULO  RETORNA 0 fimSe
fimFunção
RETORNA 1 + 0 + 0

T
B C

D E F G

Estrutura de Dados Prof. Marcos Alves 112


Função contaNos( noArvore ↑T )
Info(T) = ‘A’
se T = NULO
Info(T) = ‘B’
então retorna 0;
Info(T) = ‘D’ senão retorna (1 +
Eprox NULO  RETORNA 0 contaNos(Eprox(T)) +
contaNos(Dprox(T)));
Dprox NULO  RETORNA 0 fimSe
fimFunção
RETORNA 1 + 0 + 0

Info(T) = ‘E’ A

B C

T
D E F G

Estrutura de Dados Prof. Marcos Alves 113


Função contaNos( noArvore ↑T )
Info(T) = ‘A’
se T = NULO
Info(T) = ‘B’
então retorna 0;
Info(T) = ‘D’ senão retorna (1 +
Eprox NULO  RETORNA 0 contaNos(Eprox(T)) +
contaNos(Dprox(T)));
Dprox NULO  RETORNA 0 fimSe
fimFunção
RETORNA 1 + 0 + 0

Info(T) = ‘E’ A
Eprox NULO  RETORNA 0

B C

D E F G

Estrutura de Dados Prof. Marcos Alves 114


Função contaNos( noArvore ↑T )
Info(T) = ‘A’
se T = NULO
Info(T) = ‘B’
então retorna 0;
Info(T) = ‘D’ senão retorna (1 +
Eprox NULO  RETORNA 0 contaNos(Eprox(T)) +
contaNos(Dprox(T)));
Dprox NULO  RETORNA 0 fimSe
fimFunção
RETORNA 1 + 0 + 0

Info(T) = ‘E’ A
Eprox NULO  RETORNA 0

Dprox NULO  RETORNA 0 B C

D E F G

Estrutura de Dados Prof. Marcos Alves 115


Função contaNos( noArvore ↑T )
Info(T) = ‘A’
se T = NULO
Info(T) = ‘B’
então retorna 0;
Info(T) = ‘D’ senão retorna (1 +
Eprox NULO  RETORNA 0 contaNos(Eprox(T)) +
contaNos(Dprox(T)));
Dprox NULO  RETORNA 0 fimSe
fimFunção
RETORNA 1 + 0 + 0

Info(T) = ‘E’ A
Eprox NULO  RETORNA 0

Dprox NULO  RETORNA 0 B C

RETORNA 1 + 0 + 0 T
D E F G

Estrutura de Dados Prof. Marcos Alves 116


Função contaNos( noArvore ↑T )
Info(T) = ‘A’
se T = NULO
Info(T) = ‘B’
então retorna 0;
Info(T) = ‘D’ senão retorna (1 +
Eprox NULO  RETORNA 0 contaNos(Eprox(T)) +
contaNos(Dprox(T)));
Dprox NULO  RETORNA 0 fimSe
fimFunção
RETORNA 1 + 0 + 0

Info(T) = ‘E’ A
Eprox NULO  RETORNA 0 T
Dprox NULO  RETORNA 0 B C

RETORNA 1 + 0 + 0
D E F G
RETORNA 1 + 1 + 1

Estrutura de Dados Prof. Marcos Alves 117


Função contaNos( noArvore ↑T )
Info(T) = ‘A’
se T = NULO
Info(T) = ‘B’
então retorna 0;
Info(T) = ‘D’ senão retorna (1 +
Eprox NULO  RETORNA 0 contaNos(Eprox(T)) +
contaNos(Dprox(T)));
Dprox NULO  RETORNA 0 fimSe
fimFunção
RETORNA 1 + 0 + 0 T
Info(T) = ‘E’ A
Eprox NULO  RETORNA 0

Dprox NULO  RETORNA 0 B C

RETORNA 1 + 0 + 0
D E F G
RETORNA 1 + 1 + 1

Estrutura de Dados Prof. Marcos Alves 118
2. Função para criar uma cópia de uma árvore binária

Estrutura de Dados Prof. Marcos Alves 119


2. Função para criar uma cópia de uma árvore binária
Função constroiCopia( noArvore ↑T, var noArvore ↑cT )

se T = NULO

então cT  NULO;

senão cT  aloca(noArvore);

Info(cT)  Info(T);

constroiCopia(Eprox(T), Eprox(cT));

constroiCopia(Dprox(T), Dprox(cT));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 120


2. Função para criar uma cópia de uma árvore binária
Função constroiCopia( noArvore ↑T, var noArvore ↑cT )

se T = NULO

então cT  NULO;

senão cT  aloca(noArvore);

Info(cT)  Info(T);

constroiCopia(Eprox(T), Eprox(cT));

constroiCopia(Dprox(T), Dprox(cT));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 121


2. Função para criar uma cópia de uma árvore binária
Função constroiCopia( noArvore ↑T, var noArvore ↑cT )

se T = NULO

então cT  NULO;

senão cT  aloca(noArvore);

Info(cT)  Info(T);

constroiCopia(Eprox(T), Eprox(cT));

constroiCopia(Dprox(T), Dprox(cT));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 122


2. Função para criar uma cópia de uma árvore binária
Função constroiCopia( noArvore ↑T, var noArvore ↑cT )

se T = NULO

então cT  NULO;

senão cT  aloca(noArvore);

Info(cT)  Info(T);

constroiCopia(Eprox(T), Eprox(cT));

constroiCopia(Dprox(T), Dprox(cT));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 123


2. Função para criar uma cópia de uma árvore binária
Função constroiCopia( noArvore ↑T, var noArvore ↑cT )

se T = NULO

então cT  NULO;

senão cT  aloca(noArvore);

Info(cT)  Info(T);

constroiCopia(Eprox(T), Eprox(cT));

constroiCopia(Dprox(T), Dprox(cT));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 124


2. Função para criar uma cópia de uma árvore binária
Função constroiCopia( noArvore ↑T, var noArvore ↑cT )

se T = NULO

então cT  NULO;

senão cT  aloca(noArvore);

Info(cT)  Info(T);

constroiCopia(Eprox(T), Eprox(cT));

constroiCopia(Dprox(T), Dprox(cT));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 125


2. Função para criar uma cópia de uma árvore binária
Função constroiCopia( noArvore ↑T, var noArvore ↑cT )

se T = NULO

então cT  NULO;

senão cT  aloca(noArvore);

Info(cT)  Info(T);

constroiCopia(Eprox(T), Eprox(cT));

constroiCopia(Dprox(T), Dprox(cT));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 126


2. Função para criar uma cópia de uma árvore binária
Função constroiCopia( noArvore ↑T, var noArvore ↑cT )

se T = NULO

então cT  NULO;

senão cT  aloca(noArvore);

Info(cT)  Info(T);

constroiCopia(Eprox(T), Eprox(cT));

constroiCopia(Dprox(T), Dprox(cT));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 127


3. Imprimir uma árvore binária

Estrutura de Dados Prof. Marcos Alves 128


3. Imprimir uma árvore binária
Função imprimeAB( noArvore ↑T, inteiro espaco )

se T ≠ NULO

então imprimeAB(Dprox(T), espaco+1);

inteiro i;

para i de 1 até espaco passo 1 faça

escreva “-”;

fimPara

escreva Info(T);

imprimeAB(Eprox(T), espaco+1);

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 129


3. Imprimir uma árvore binária
Função imprimeAB( noArvore ↑T, inteiro espaco )

se T ≠ NULO

então imprimeAB(Dprox(T), espaco+1);

inteiro i;

para i de 1 até espaco passo 1 faça

escreva “-”;

fimPara

escreva Info(T);

imprimeAB(Eprox(T), espaco+1);

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 130


3. Imprimir uma árvore binária
Função imprimeAB( noArvore ↑T, inteiro espaco )

se T ≠ NULO

então imprimeAB(Dprox(T), espaco+1);

inteiro i;

para i de 1 até espaco passo 1 faça

escreva “-”;

fimPara

escreva Info(T);

imprimeAB(Eprox(T), espaco+1);

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 131


3. Imprimir uma árvore binária
Função imprimeAB( noArvore ↑T, inteiro espaco )

se T ≠ NULO

então imprimeAB(Dprox(T), espaco+1);

inteiro i;

para i de 1 até espaco passo 1 faça

escreva “-”;

fimPara

escreva Info(T);

imprimeAB(Eprox(T), espaco+1);

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 132


3. Imprimir uma árvore binária
Função imprimeAB( noArvore ↑T, inteiro espaco )

se T ≠ NULO

então imprimeAB(Dprox(T), espaco+1);

inteiro i;

para i de 1 até espaco passo 1 faça

escreva “-”;

fimPara

escreva Info(T);

imprimeAB(Eprox(T), espaco+1);

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 133


3. Imprimir uma árvore binária
Função imprimeAB( noArvore ↑T, inteiro espaco )

se T ≠ NULO

então imprimeAB(Dprox(T), espaco+1);

inteiro i;

para i de 1 até espaco passo 1 faça

escreva “-”;

fimPara

escreva Info(T);

imprimeAB(Eprox(T), espaco+1);

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 134


3. Imprimir uma árvore binária
Função imprimeAB( noArvore ↑T, inteiro espaco )

se T ≠ NULO

então imprimeAB(Dprox(T), espaco+1);

inteiro i;

para i de 1 até espaco passo 1 faça

escreva “-”;

fimPara

escreva Info(T);

imprimeAB(Eprox(T), espaco+1);

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 135


3. Imprimir uma árvore binária
Função imprimeAB( noArvore ↑T, inteiro espaco )

se T ≠ NULO

então imprimeAB(Dprox(T), espaco+1);

inteiro i;

para i de 1 até espaco passo 1 faça

escreva “-”;

fimPara

escreva Info(T);

imprimeAB(Eprox(T), espaco+1);

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 136


3. Imprimir uma árvore binária
Função imprimeAB( noArvore ↑T, inteiro espaco )

se T ≠ NULO

então imprimeAB(Dprox(T), espaco+1);

inteiro i;

para i de 1 até espaco passo 1 faça

escreva “-”;

fimPara

escreva Info(T);

imprimeAB(Eprox(T), espaco+1);

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 137


Info(T) = ‘A’ Primeira chamada: Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
imprimeAB(R,0) então imprimeAB(Dprox(T), espaco+1);
inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
fimPara
escreva Info(T);
imprimeAB(Eprox(T), espaco+1);
fimSe
fimFunção

T R
A

B C

D E F

H I

Estrutura de Dados Prof. Marcos Alves 138


Info(T) = ‘A’ Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’ inteiro i;

espaco = 1 para i de 1 até espaco passo 1 faça


escreva “-”;
fimPara
escreva Info(T);
imprimeAB(Eprox(T), espaco+1);
fimSe
fimFunção

R
A

T
B C

D E F

H I

Estrutura de Dados Prof. Marcos Alves 139


Info(T) = ‘A’ Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’ inteiro i;

espaco = 1 para i de 1 até espaco passo 1 faça


escreva “-”;
Info(T) = ‘F’ fimPara
espaco = 2 escreva Info(T);
imprimeAB(Eprox(T), espaco+1);
fimSe
fimFunção

R
A

B C

T
D E F

H I

Estrutura de Dados Prof. Marcos Alves 140


Info(T) = ‘A’ Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’ inteiro i;

espaco = 1 para i de 1 até espaco passo 1 faça


escreva “-”;
Info(T) = ‘F’ fimPara
espaco = 2 escreva Info(T);

Info(T) = ‘I’ imprimeAB(Eprox(T), espaco+1);


fimSe
espaco = 3
fimFunção

R
A

B C

D E F

T
H I

Estrutura de Dados Prof. Marcos Alves 141


Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’ inteiro i;

espaco = 1 para i de 1 até espaco passo 1 faça


escreva “-”;
Info(T) = ‘F’ fimPara
espaco = 2 escreva Info(T);

Info(T) = ‘I’ imprimeAB(Eprox(T), espaco+1);


fimSe
espaco = 3
fimFunção
escreva - - - I
R
A

B C

D E F

T
H I

Estrutura de Dados Prof. Marcos Alves 142


Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’ inteiro i;

espaco = 1 para i de 1 até espaco passo 1 faça


escreva “-”;
Info(T) = ‘F’ fimPara
espaco = 2 escreva Info(T);

Info(T) = ‘I’ imprimeAB(Eprox(T), espaco+1);


fimSe
espaco = 3
fimFunção
escreva - - - I
R
A

B C

T
D E F

H I

Estrutura de Dados Prof. Marcos Alves 143


Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’ fimPara
espaco = 2 escreva Info(T);

Info(T) = ‘I’ imprimeAB(Eprox(T), espaco+1);


fimSe
espaco = 3
fimFunção
escreva - - - I
R
escreva - - F
A

B C

T
D E F

H I

Estrutura de Dados Prof. Marcos Alves 144


Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’ fimPara
espaco = 2 escreva Info(T);

Info(T) = ‘I’ imprimeAB(Eprox(T), espaco+1);


fimSe
espaco = 3
fimFunção
escreva - - - I
R
escreva - - F
Info(T) = ‘H’ A
espaco = 3

B C

D E F
T
H I

Estrutura de Dados Prof. Marcos Alves 145


Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’ imprimeAB(Eprox(T), espaco+1);


fimSe
espaco = 3
fimFunção
escreva - - - I
R
escreva - - F
Info(T) = ‘H’ A
espaco = 3
escreva - - - H
B C

D E F
T
H I

Estrutura de Dados Prof. Marcos Alves 146


Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’ imprimeAB(Eprox(T), espaco+1);


fimSe
espaco = 3
fimFunção
escreva - - - I
R
escreva - - F
Info(T) = ‘H’ A
espaco = 3
escreva - - H T
B C

D E F

H I

Estrutura de Dados Prof. Marcos Alves 147


Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I
R
escreva - - F
Info(T) = ‘H’ A
espaco = 3
escreva - - H T
B C
escreva - C

D E F

H I

Estrutura de Dados Prof. Marcos Alves 148


Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I
R
escreva - - F
Info(T) = ‘H’ A
espaco = 3
escreva - - H
B C
escreva - C
Info(T) = ‘E’ T
espaco = 2 D E F

H I

Estrutura de Dados Prof. Marcos Alves 149


Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I
escreva - - F - - E R
Info(T) = ‘H’ A
espaco = 3
escreva - - H
B C
escreva - C
Info(T) = ‘E’ T
espaco = 2 D E F
escreva - - E

H I

Estrutura de Dados Prof. Marcos Alves 150


Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I
escreva - - F - - E T R
Info(T) = ‘H’ A
espaco = 3
escreva - - H
B C
escreva - C
Info(T) = ‘E’
espaco = 2 D E F
escreva - - E

H I
...
Estrutura de Dados Prof. Marcos Alves 151
Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I
escreva - - F - - E R
Info(T) = ‘H’ A
espaco = 3
escreva - - H
B C
escreva - C
Info(T) = ‘E’
espaco = 2 D E F
escreva - - E

... H I

Estrutura de Dados Prof. Marcos Alves 152


Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I

I
escreva - - F - - E

F
Info(T) = ‘H’
espaco = 3
escreva - - H

H
C
escreva - C

A
Info(T) = ‘E’
espaco = 2

E
escreva - - E R
...

D
Estrutura de Dados Prof. Marcos Alves 153
Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I

I
escreva - - F - - E

F
Info(T) = ‘H’
espaco = 3
escreva - - H

H
C
escreva - C

A
Info(T) = ‘E’
espaco = 2

E
escreva - - E R
...

D
Estrutura de Dados Prof. Marcos Alves 154
Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I

I
escreva - - F - - E

F
Info(T) = ‘H’
espaco = 3
escreva - - H

H
C
escreva - C

A
Info(T) = ‘E’
espaco = 2

E
escreva - - E R
...

D
Estrutura de Dados Prof. Marcos Alves 155
Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I

I
escreva - - F - - E

F
Info(T) = ‘H’
espaco = 3
escreva - - H

H
C
escreva - C

A
Info(T) = ‘E’
espaco = 2

E
escreva - - E R
...

D
Estrutura de Dados Prof. Marcos Alves 156
Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I

I
escreva - - F - - E

F
Info(T) = ‘H’
espaco = 3
escreva - - H

H
C
escreva - C

A
Info(T) = ‘E’
espaco = 2

E
escreva - - E R
...

D
Estrutura de Dados Prof. Marcos Alves 157
Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I

I
escreva - - F - - E

F
Info(T) = ‘H’
espaco = 3
escreva - - H

H
C
escreva - C

A
Info(T) = ‘E’
espaco = 2

E
escreva - - E R
...

D
Estrutura de Dados Prof. Marcos Alves 158
Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I

I
escreva - - F - - E

F
Info(T) = ‘H’
espaco = 3
escreva - - H

H
C
escreva - C

A
Info(T) = ‘E’
espaco = 2

E
escreva - - E R
...

D
Estrutura de Dados Prof. Marcos Alves 159
Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I

I
escreva - - F - - E

F
Info(T) = ‘H’
espaco = 3
escreva - - H

H
C
escreva - C

A
Info(T) = ‘E’
espaco = 2

E
escreva - - E R
...

D
Estrutura de Dados Prof. Marcos Alves 160
Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I

I
escreva - - F - - E

F
Info(T) = ‘H’
espaco = 3
escreva - - H

H
C
escreva - C

A
Info(T) = ‘E’
espaco = 2

E
escreva - - E R
...

D
Estrutura de Dados Prof. Marcos Alves 161
Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I

I
escreva - - F - - E

F
Info(T) = ‘H’
espaco = 3
escreva - - H

H
C
escreva - C

A
Info(T) = ‘E’
espaco = 2

E
escreva - - E R
...

D
Estrutura de Dados Prof. Marcos Alves 162
Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I

I
escreva - - F - - E

F
Info(T) = ‘H’
espaco = 3
escreva - - H

H
C
escreva - C

A
Info(T) = ‘E’
espaco = 2

E
escreva - - E R
...

D
Estrutura de Dados Prof. Marcos Alves 163
Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I

I
escreva - - F - - E

F
Info(T) = ‘H’
espaco = 3
escreva - - H

H
C
escreva - C

A
Info(T) = ‘E’
espaco = 2

E
escreva - - E R
...

D
Estrutura de Dados Prof. Marcos Alves 164
Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I

I
escreva - - F - - E

F
Info(T) = ‘H’
espaco = 3
escreva - - H

H
C
escreva - C

A
Info(T) = ‘E’
espaco = 2

E
escreva - - E R
...

D
Estrutura de Dados Prof. Marcos Alves 165
Info(T) = ‘A’
- - - I
Função imprimeAB( noArvore ↑T, inteiro espaco )
se T ≠ NULO
espaco = 0
então imprimeAB(Dprox(T), espaco+1);
Info(T) = ‘C’
espaco = 1 - - F inteiro i;
para i de 1 até espaco passo 1 faça
escreva “-”;
Info(T) = ‘F’
espaco = 2 - - - H fimPara
escreva Info(T);

Info(T) = ‘I’
- C
imprimeAB(Eprox(T), espaco+1);
fimSe
espaco = 3
fimFunção
escreva - - - I

I
escreva - - F - - E

F
Info(T) = ‘H’
espaco = 3
escreva - - H

H
C
escreva - C

A
Info(T) = ‘E’
espaco = 2

E
escreva - - E R
...

D
Estrutura de Dados Prof. Marcos Alves 166
 Três tipos diferentes de percursos:
1. In-ordem

2. Pré-ordem

3. Pós-ordem

Estrutura de Dados Prof. Marcos Alves 167


 Três tipos diferentes de percursos:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;

2. Pré-ordem

3. Pós-ordem

Estrutura de Dados Prof. Marcos Alves 168


 Três tipos diferentes de percursos:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;

2. Pré-ordem

3. Pós-ordem

Estrutura de Dados Prof. Marcos Alves 169


 Três tipos diferentes de percursos:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

2. Pré-ordem

3. Pós-ordem

Estrutura de Dados Prof. Marcos Alves 170


 Três tipos diferentes de percursos:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

2. Pré-ordem
 Visita a raiz;

3. Pós-ordem

Estrutura de Dados Prof. Marcos Alves 171


 Três tipos diferentes de percursos:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;

3. Pós-ordem

Estrutura de Dados Prof. Marcos Alves 172


 Três tipos diferentes de percursos:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

3. Pós-ordem

Estrutura de Dados Prof. Marcos Alves 173


 Três tipos diferentes de percursos:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;

Estrutura de Dados Prof. Marcos Alves 174


 Três tipos diferentes de percursos:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem.

Estrutura de Dados Prof. Marcos Alves 175


 Três tipos diferentes de percursos:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem.
 Visita a raiz;
Estrutura de Dados Prof. Marcos Alves 176
 Três tipos diferentes de percursos:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem.
 Visita a raiz;
Estrutura de Dados Prof. Marcos Alves 177
 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 178


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.
T
A
In-ordem: D B A E G C H F I

B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 179


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I
T
B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 180


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 181


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

TD E F

G H I

Estrutura de Dados Prof. Marcos Alves 182


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 183


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

D
T E F

G H I

Estrutura de Dados Prof. Marcos Alves 184


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 185


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I
T
B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 186


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B
T C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 187


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I
T
B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 188


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.
T
A
In-ordem: D B A E G C H F I

B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 189


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I
T
B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 190


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 191


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

D
TE F

G H I

Estrutura de Dados Prof. Marcos Alves 192


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 193


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

D E F

T
G H I

Estrutura de Dados Prof. Marcos Alves 194


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

D E F

TG H I

Estrutura de Dados Prof. Marcos Alves 195


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

D E F

T
G H I

Estrutura de Dados Prof. Marcos Alves 196


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

D E F

G
T H I

Estrutura de Dados Prof. Marcos Alves 197


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

D E F

T
G H I

Estrutura de Dados Prof. Marcos Alves 198


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 199


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I
T
B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 200


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 201


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

D E F

T
G H I

Estrutura de Dados Prof. Marcos Alves 202


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

D E F

G
TH I

Estrutura de Dados Prof. Marcos Alves 203


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

D E F

T
G H I

Estrutura de Dados Prof. Marcos Alves 204


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

D E F

G H
T I

Estrutura de Dados Prof. Marcos Alves 205


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H

B C

D E F

T
G H I

Estrutura de Dados Prof. Marcos Alves 206


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 207


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

D E F

T
G H I

Estrutura de Dados Prof. Marcos Alves 208


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

D E F

G H
TI
Estrutura de Dados Prof. Marcos Alves 209
 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

D E F

T
G H I

Estrutura de Dados Prof. Marcos Alves 210


 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

D E F

G H I
T
Estrutura de Dados Prof. Marcos Alves 211
 EXEMPLOS:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

A
In-ordem: D B A E G C H F I

B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 212


 EXEMPLOS:
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

A
Pré-ordem: B D C E G F H I

B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 213


 EXEMPLOS:
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.
T
A
Pré-ordem: A B D C E G F H I

B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 214


 EXEMPLOS:
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

A
Pré-ordem: A B D C E G F H I
T
B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 215


 EXEMPLOS:
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

A
Pré-ordem: A B D C E G F H I

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 216


 EXEMPLOS:
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

A
Pré-ordem: A B D C E G F H I
T
B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 217


 EXEMPLOS:
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.
T
A
Pré-ordem: A B D C E G F H I

B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 218


 EXEMPLOS:
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

A
Pré-ordem: A B D C E G F H I
T
B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 219


 EXEMPLOS:
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

A
Pré-ordem: A B D C E G F H I

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 220


 EXEMPLOS:
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

A
Pré-ordem: A B D C E G F H I

B C

D E F

T
G H I

Estrutura de Dados Prof. Marcos Alves 221


 EXEMPLOS:
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

A
Pré-ordem: A B D C E G I

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 222


 EXEMPLOS:
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

A
Pré-ordem: A B D C E G I
T
B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 223


 EXEMPLOS:
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

A
Pré-ordem: A B D C E G F H I

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 224


 EXEMPLOS:
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

A
Pré-ordem: A B D C E G F H I

B C

D E F

T
G H I

Estrutura de Dados Prof. Marcos Alves 225


 EXEMPLOS:
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

A
Pré-ordem: A B D C E G F H I

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 226


 EXEMPLOS:
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

A
Pré-ordem: A B D C E G F H I

B C

D E F

T
G H I

Estrutura de Dados Prof. Marcos Alves 227


 EXEMPLOS:
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

A
Pré-ordem: A B D C E G F H I

B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 228


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

A
Pós-ordem: D B G E H I F C A

B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 229


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.
T
A
Pós-ordem: D B G E H I F C A

B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 230


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

A
Pós-ordem: D B G E H I F C A
T
B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 231


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

A
Pós-ordem: D B G E H I F C A

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 232


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

A
Pós-ordem: D B G E H I F C A
T
B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 233


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.
T
A
Pós-ordem: D B G E H I F C A

B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 234


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

A
Pós-ordem: D B G E H I F C A
T
B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 235


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

A
Pós-ordem: D B G E H I F C A

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 236


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

A
Pós-ordem: D B G E H I F C A

B C

D E F

T
G H I

Estrutura de Dados Prof. Marcos Alves 237


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

A
Pós-ordem: D B G E H I F C A

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 238


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

A
Pós-ordem: D B G E H I F C A
T
B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 239


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

A
Pós-ordem: D B G E H I F C A

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 240


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

A
Pós-ordem: D B G E H I F C A

B C

D E F

T
G H I

Estrutura de Dados Prof. Marcos Alves 241


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

A
Pós-ordem: D B G E H I F C A

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 242


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

A
Pós-ordem: D B G E H I F C A

B C

D E F

T
G H I

Estrutura de Dados Prof. Marcos Alves 243


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

A
Pós-ordem: D B G E H I F C A

B C

T
D E F

G H I

Estrutura de Dados Prof. Marcos Alves 244


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

A
Pós-ordem: D B G E H I F C A
T
B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 245


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.
T
A
Pós-ordem: D B G E H I F C A

B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 246


 EXEMPLOS:
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

A
Pós-ordem: D B G E H I F C A

B C

D E F

G H I

Estrutura de Dados Prof. Marcos Alves 247


 FUNÇÕES:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

Função inOrdem( noArvore ↑T )

se T ≠ NULO

então inOrdem(EProx(T));

visitaNo(T);

inOrdem( DProx( T ) );

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 248


 FUNÇÕES:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

Função inOrdem( noArvore ↑T )

se T ≠ NULO

então inOrdem(EProx(T));

visitaNo(T);

inOrdem( DProx( T ) );

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 249


 FUNÇÕES:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

Função inOrdem( noArvore ↑T )

se T ≠ NULO

então inOrdem(EProx(T));

visitaNo(T);

inOrdem( DProx( T ) );

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 250


 FUNÇÕES:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

Função inOrdem( noArvore ↑T )

se T ≠ NULO

então inOrdem(EProx(T));

visitaNo(T);

inOrdem( DProx( T ) );

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 251


 FUNÇÕES:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

Função inOrdem( noArvore ↑T )

se T ≠ NULO

então inOrdem(EProx(T));

visitaNo(T);

inOrdem(DProx(T));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 252


 FUNÇÕES:
1. In-ordem
 Percorre sua sub-árvore à esquerda em in-ordem;
 Visita a raiz;
 Percorre sua sub-árvore à direita em in-ordem.

Função inOrdem( noArvore ↑T )

se T ≠ NULO

então inOrdem(EProx(T));

visitaNo(T);

inOrdem(DProx(T));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 253


 FUNÇÕES :
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

Função preOrdem( noArvore ↑T )

se T ≠ NULO

então inOrdem(EProx(T));

visitaNo(T);

inOrdem(DProx(T));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 254


 FUNÇÕES :
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

Função preOrdem( noArvore ↑T )

se T ≠ NULO

então inOrdem(EProx(T));

visitaNo(T);

inOrdem(DProx(T));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 255


 FUNÇÕES :
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

Função preOrdem( noArvore ↑T )

se T ≠ NULO

então visitaNo(T);

preOrdem(EProx(T));

preOrdem(DProx(T));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 256


 FUNÇÕES :
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

Função preOrdem( noArvore ↑T )

se T ≠ NULO

então visitaNo(T);

preOrdem(EProx(T));

preOrdem(DProx(T));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 257


 FUNÇÕES :
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

Função preOrdem( noArvore ↑T )

se T ≠ NULO

então visitaNo(T);

preOrdem(EProx(T));

preOrdem(DProx(T));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 258


 FUNÇÕES :
2. Pré-ordem
 Visita a raiz;
 Percorre sua sub-árvore à esquerda em pré-ordem;
 Percorre sua sub-árvore à direita em pré-ordem.

Função preOrdem( noArvore ↑T )

se T ≠ NULO

então visitaNo(T);

preOrdem(EProx(T));

preOrdem(DProx(T));

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 259


 FUNÇÕES :
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

Função posOrdem( noArvore ↑T )

se T ≠ NULO

então posOrdem(EProx(T));

posOrdem(DProx(T));

visitaNo(T);

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 260


 FUNÇÕES :
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

Função posOrdem( noArvore ↑T )

se T ≠ NULO

então posOrdem(EProx(T));

posOrdem(DProx(T));

visitaNo(T);

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 261


 FUNÇÕES :
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

Função posOrdem( noArvore ↑T )

se T ≠ NULO

então posOrdem(EProx(T));

posOrdem(DProx(T));

visitaNo(T);

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 262


 FUNÇÕES :
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

Função posOrdem( noArvore ↑T )

se T ≠ NULO

então posOrdem(EProx(T));

posOrdem(DProx(T));

visitaNo(T);

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 263


 FUNÇÕES :
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

Função posOrdem( noArvore ↑T )

se T ≠ NULO

então posOrdem(EProx(T));

posOrdem(DProx(T));

visitaNo(T);

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 264


 FUNÇÕES :
3. Pós-ordem
 Percorre sua sub-árvore à esquerda em pós-ordem;
 Percorre sua sub-árvore à direita em pós-ordem;
 Visita a raiz.

Função posOrdem( noArvore ↑T )

se T ≠ NULO

então posOrdem(EProx(T));

posOrdem(DProx(T));

visitaNo(T);

fimSe

fimFunção

Estrutura de Dados Prof. Marcos Alves 265


 EXERCÍCIO
Percorrendo uma árvore binária obteve-se os seguintes
percursos:

 Pré-ordem: A B C D L E F K G I J H

 Pós-ordem: L K J I H G F E D C B A

 In-ordem: A B L D K F J I G H E C

Qual é a árvore binária correspondente?

Estrutura de Dados Prof. Marcos Alves 266

Você também pode gostar