Escolar Documentos
Profissional Documentos
Cultura Documentos
Linguagem e Técnicas
de Programação
Existe um nó denominado raiz, que pode ramificar-se (ou não) em subárvores, cujas
raízes são ligadas diretamente a essa raiz, e assim sucessivamente.
Subárvores
Árvores binárias
Assim, recursivamente, os filhos são pais que têm, no máximo, dois filhos.
B C
D E
Conjunto de nós e suas ramificações
Raiz
SAE SAD
2 7
1 3 6 8
4
Percurso em pré-ordem ou prefixo (busca em profundidade)
Percurso: 5 2 1 3 4 7 6 8
2 7
1 3 6 8
4
Percurso em ordem ou infixo (ordem simétrica)
END END
2 7
END END
1 3 6 8
END END
END 4
Percurso em ordem ou infixo (ordem simétrica)
Percurso: 1 2 3 4 5 6 7 8
2 7
1 3 6 8
4
Percurso em pós-ordem ou posfixo
EDN EDN
2 7
EDN EDN
1 3 6 8
EDN EDN
EDN 4
Percurso em pós-ordem ou posfixo
Percurso : 1 4 3 2 6 8 7 5
2 7
1 3 6 8
4
Interatividade
A recursividade acontece quando uma função chama a si mesma, mas a cada chamada a
função passa a executar a si desde o início e, na volta, retorna ao ponto em que foi chamada.
Com base na árvore a seguir e tendo o percurso 5 2 1 3 4 7 6 8, trata-se de um percurso em:
a) Pré-ordem.
b) Pós-ordem. 5
c) Ordem.
d) Árvore binária com costura.
e) Nó sempre à direita. 2 7
1 3 6 8
4
Resposta
A recursividade acontece quando uma função chama a si mesma, mas a cada chamada a
função passa a executar a si desde o início e, na volta, retorna ao ponto em que foi chamada.
Com base na árvore a seguir e tendo o percurso 5 2 1 3 4 7 6 8, trata-se de um percurso em:
a) Pré-ordem.
b) Pós-ordem. 5
c) Ordem.
d) Árvore binária com costura.
e) Nó sempre à direita. 2 7
1 3 6 8
4
Árvores binárias de busca
A busca por um valor torna-se muito fácil, pois, a partir de simples comparações, podemos
localizá-lo com menos passos.
50 67 20 13 31 35 80 60 62 2 55 25
Árvores binárias de busca
Nessa árvore, para ir da raiz até quaisquer um dos nós, são necessários, no máximo, três
“pulos”.
1 50
1 2 3 4 5 6 7 8 9
50 67 20 13 31 35 80 60 62 2 55 25
20 67
Quantidade de passos para localizar o número 2 2
13 31 60 80
3
2 25 35 55 62
Na operação de inserção, o novo valor inserido não pode quebrar a estrutura da árvore.
Ao encontrar uma subárvore livre ou uma folha, deve-se obedecer aos seguinte critérios:
Se a chave a ser inserida for menor que a chave do nó analisado, insere a chave na
subárvore esquerda.
Se a chave a ser inserida for maior que a chave do nó analisado, insere a chave na
subárvore direita.
Se a subárvore estiver ocupada, segue a busca.
Operação de inserção
20 67
13 31 60 80
2 25 35 55 62 88
Interatividade
Uma árvore binária de busca ou árvore binária de pesquisa é uma estrutura de dados em que
todos os nós da subárvore esquerda possuem valor inferior ao do nó-raiz e todos os nós da
subárvore direita possuem um valor superior ao do nó-raiz. Com base neste conceito, é
possível afirmar que:
Interatividade
a) A busca de um valor torna-se mais fácil, pois, a partir de simples comparações, podemos
localizá-lo com menos passos.
b) A busca de um nó com um filho.
c) A busca de um nó com dois filhos.
d) A busca pelo valor do nó a mais à direita da subárvore esquerda.
e) A busca pelo nó-raiz.
Resposta
a) A busca de um valor torna-se mais fácil, pois, a partir de simples comparações, podemos
localizá-lo com menos passos.
b) A busca de um nó com um filho.
c) A busca de um nó com dois filhos.
d) A busca pelo valor do nó a mais à direita da subárvore esquerda.
e) A busca pelo nó-raiz.
Remoção de folha
20 67
13 31 60 80
2 25 35 55 62 88
Remoção de folha com um filho
Exemplo:
remoção do valor 80, o seu filho, 88, assumirá seu lugar.
50
20 67
13 31 60 80
2 25 35 55 62 88
Remoção de folha com um filho
Outro exemplo:
Remoção do nó 13.
50
20 67
13 31 60 80
2 25 35 55 62 88
Remoção de folha com dois filhos
20 67
13 31 60 80
2 25 35 55 62 88
Situação atual da árvore:
35
20 67
13 31 60 80
2 25 55 62 88
Remoção de folha com dois filhos
20 67
13 31 60 80
2 25 35 55 62 88
A árvore fica:
55
20 67
13 31 60 80
2 25 35 62 88
Interatividade
a) O valor do nó a ser retirado será substituído pelo nó mais à direita da subárvore esquerda.
b) O valor do nó a ser retirado será substituído pelo nó mais à esquerda da subárvore
esquerda.
c) O valor do nó a ser retirado será substituído pelo nó mais à esquerda da subárvore direita.
d) Exclusão do nó principal e o filho sobe para a posição do pai.
e) Remoção de apenas um nó da árvore.
Resposta
a) O valor do nó a ser retirado será substituído pelo nó mais à direita da subárvore esquerda.
b) O valor do nó a ser retirado será substituído pelo nó mais à esquerda da subárvore
esquerda.
c) O valor do nó a ser retirado será substituído pelo nó mais à esquerda da subárvore direita.
d) Exclusão do nó principal e o filho sobe para a posição do pai.
e) Remoção de apenas um nó da árvore.
Estrutura de árvores binárias em C
Para criar árvores não vazias, temos uma operação que cria um nó-raiz, dadas as informações
e suas duas subárvores, à esquerda e à direita. Analise a função cria() e selecione a alternativa
que melhor descreva a sua assinatura:
Interatividade
a) A função cria( ) recebe por parâmetro um valor inteiro e dois ponteiros sae e sad,
retornando o endereço do nó criado através do ponteiro p.
b) A função cria( ) recebe por parâmetro dois ponteiros para um inteiro c, retornando
o ponteiro p.
c) A função cria( ) recebe por parâmetro dois ponteiros sae e sad, retornando o endereço
do nó criado através do ponteiro p.
d) A função cria recebe por parâmetro um valor inteiro e dois ponteiros sae e sad, retornando
o nó criado através do ponteiro p.
e) Nenhuma alternativa está de acordo com a assinatura da função.
Resposta
a) A função cria( ) recebe por parâmetro um valor inteiro e dois ponteiros sae e sad,
retornando o endereço do nó criado através do ponteiro p.
b) A função cria( ) recebe por parâmetro dois ponteiros para um inteiro c, retornando
o ponteiro p.
c) A função cria( ) recebe por parâmetro dois ponteiros sae e sad, retornando o endereço
do nó criado através do ponteiro p.
d) A função cria recebe por parâmetro um valor inteiro e dois ponteiros sae e sad, retornando
o nó criado através do ponteiro p.
e) Nenhuma alternativa está de acordo com a assinatura da função.
ATÉ A PRÓXIMA!