Buscar

Pesquisa binária Teoria dos Grafos e Análise de Algoritmos - Exercícios

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Pesquisa binária – Teoria dos Grafos e Análise de Algoritmos 
Exercícios
1. A estrutura de dados de árvore apresenta grande versatilidade. Pode ser aplicada
na solução de um leque de problemas, como em indexação de bancos de dados, em
buscas, em estruturas de diretórios em sistemas de arquivos, entre outros.
Considerando uma árvore binária de busca, qual destas é uma de suas
propriedades?
Você acertou!
B. A subárvore esquerda de um nó contém os nós com chaves menores ou iguais que a
do nó.
Para uma árvore agir como uma árvore de busca, os valores armazenados em
cada nó devem ser maiores que qualquer outro que esteja na subárvore esquerda
e menores do que os salvos em subárvores à direita. Logo, a subárvore esquerda
de   um   nó   contém   os   nós   com   chaves   menores   ou   iguais   ao   nó   referente;   a
subárvore direita de um nó contém os nós com chaves maiores que o nó referente;
e as subárvores esquerda e direita também devem ser uma árvore de pesquisa
binária.
De acordo com a propriedade de uma árvore de busca, uma subárvore à esquerda
não pode receber chaves maiores que o nó. Além disso, em uma árvore binária de
busca,   cada   nó   pode   ter,   no   máximo,   dois   filhos.   Sobre   o   tipos   e   os   valores
armazenados nos nós, não exitem restrições: pode ser tanto uma string como um
valor numérico qualquer, e, quando se trata de valores numéricos, também não
existem restrições se o valor é positivo ou negativo.
2. Uma árvore binária de busca é conhecida pela sua eficiência quando é necessária
a pesquisa de algum valor, seguindo as regras de buscas, ramificando para a
esquerda e para a direita.
Sabendo disso, de acordo com a árvore na imagem, determine qual caminho a
chave de busca percorreu para pesquisa do valor 87 e se este existe ou não.
Você acertou!
D. 
Visitou chave 70.
Visitou chave 90.
Visitou chave 83.
Visitou chave 85.
Visitou chave 89.
Resultado: falha.
Considerando   que   a   raiz   da   árvore   corresponde   ao   valor   70,   para   o   número
procurado (87), precisaremos caminhar pela subárvore à direita. Em seguida, será
visitado nó de chave 90, porém o valor procurado ainda não é esse, e, como 87 é
menor   que   90,   será   explorada   à   subárvore   à   esquerda   do   nó   de   chave   90,
resultando   em   uma   visita   ao   nó   de   chave   83.   Como   87   é   maior   que   83,
seguiremos à procura pela subárvore à direita desse nó, chegando ao nó de chave
85. O valor 87 é maior que 85, fazendo com que seja realizada a leitura ao último
nó dessa ramificação: o nó de chave 89.
Como não existem mais elementos a serem explorados a partir do nó de chave 89,
o resultado obtido é de falha, pois o elemento 87 não existe.
3. Sempre que vimos uma árvore, presumimos a ordem em que seus elementos
foram adicionados. Dessa forma, conforme a imagem utilizada no exercício anterior,
defina uma possível ordem do vetor que culminou na árvore apresentada,
lembrando que o primeiro valor corresponde à raiz da árvore.
Você acertou!
B. [70,90,4,114,2,23,83,116,72,15,85,89,63].
Podemos verificar a ordem de cada elemento fazendo uma pequena inserção em
uma   árvore   abstrata.  Ao   criar   uma   árvore   binária   sem   balanceamento,   temos
sempre que considerar sua forma de organizar seus valores. Logo, se o valor 89,
que é uma folha, for adicionado antes do valor 85, o valor 89 que antes não tinha
nenhuma ramificação passará a ter o nó 85 como subárvore esquerda.
Seguindo   esse   raciocínio,   podemos   estabelecer   uma   possível   ordem   como:
[70,90,4,114,2,23,83,116,72,15,85,89,63].
4. Uma árvore binária de busca, como o próprio nome sugere, é uma estrutura de
dados que armazena dados de maneira que permita a realização de busca binária.
Essa busca segue o paradigma de divisão e conquista e acaba tendo uma eficiência
melhor do que uma busca linear.
Existem duas abordagens para realizar a implementação dessa busca: a
implementação recursiva e iterativa. Qual a principal diferença entre essas
implementações?
Você acertou!
C. Na abordagem recursiva, um nó definido como base nele próprio realiza a repetição
dos seus passos invocando a si próprio, executando todos os seus passos novamente até
encontrar o valor buscado. Diferentemente da busca recursiva, a busca iterativa considera
as ramificações de maneira explícita de cada nó para percorrer seus nós, pois não há
uma chamada interna para a mesma função.
A  abordagem   recursiva   realiza   autorreferência,   ou   seja,   ocorre   quando   algo   é
definido em termos de si mesmo. No caso da árvore, um nó é definido com base
nele próprio até achar o valor buscado; já no método iterativo, a busca é realizada
percorrendo   explicitamente   todos   os   nós   da   árvore   até   se   encontrar   o   valor
buscado.
Além disso, apenas o método iterativo usa laços de repetição, como while e for. E,
apesar   de   serem   abordagens   diferentes,   ambas   visitam   os   mesmos   nós   no
processo de busca por determinado valor.
5. Em termos de alocação de memória, podemos implementar uma árvore de busca
binária utilizando alocação dinâmica ou alocação estática.
Considerando a alocação estática, como ocorre a representação de uma árvore de
pesquisa binária em um vetor?
Você acertou!
A. 
1- O nó raiz deve ficar na posição inicial do vetor.
2-  Para cada nó em determinada posição  i  de um vetor,  seu filho esquerdo ficará na
posição 2*i + 1, e seu filho direito ficará na posição 2*i + 2.
As árvores também podem ser implementadas sob listas fixas ou estáticas, que
ocorrem por meio da distribuição dos nós da árvore ao longo de um vetor (array).
Essa distribuição ocorre da seguinte forma: o nó raiz será o primeiro elemento do
vetor, e, para cada nó em determinada posição i do vetor, seu filho esquerdo ficará
na posição 2*i + 1, e seu filho direito ficará na posição 2*i + 2.
	Pesquisa binária – Teoria dos Grafos e Análise de Algoritmos
	Exercícios

Continue navegando