Prévia do material em texto
Exercícios Estrutura de Dados (Unidade 4)
Deixe seu like!!
1. Alguns problemas requerem estruturas que possibilitem operações como
inserção e remoção de maneira dinâmica, tais como as árvores. Em relação
às árvores e suas vantagens em relação às demais estruturas,
marque a alternativa correta.
Árvores são consideradas eficientes para guardar informações, pois apresentam uma forma de
organização não linear.
2. Considere que você precisa utilizar uma árvore binária e o TAD deve ter
um campo para armazenar um número inteiro. Os nós podem ser
representados na linguagem Python como uma classe com os seguintes
atributos básicos:
Número do nó, ponteiro para subárvore da direita e ponteiro para subárvore da esquerda.
3. Durante a implementação de um TAD hierárquico, será necessário conhecer
alguns termos para projetar os métodos. Acerca das terminologias da
estrutura de dados do tipo árvore, considere a imagem a seguir e marque a
alternativa correta:
O grau do nó E é 2.
4. Dada a seguinte árvore e considerando as propriedades de armazenamento
de uma árvore binária, após a inserção do nó 9 e do nó 5, nessa ordem, pode-
se afirmar que esses nós serão filhos dos nós:
9 será filho da esquerda do nó 10 e 5 será filho da direita do nó 4.
5. Caso você tivesse que indicar uma estrutura de dados apropriada para
armazenar uma sequência de comandos HTML e verificar sua sintaxe antes
de apresentar as informações no browser, qual estrutura você indicaria?
Árvore
6.
As árvores são estruturas de dados de grande contribuição, principalmente no
que tange as expressões aritméticas, em que o percurso utilizado pode
influenciar diretamente.
O caminhamento em árvore é realizado de três formas, as quais variam
conforme a posição de leitura do nó raiz, que podem ser:
em-ordem, pós-ordem, pré-ordem.
7. Árvores binárias possibilitam maior organização dos elementos adicionados,
o que facilita separar os elementos a cada nível de crescimento da árvore.
Dada a seguinte lista de caracteres [P, R, O, G, R, A, M, A, D, O, R, U, M], como
ficaria seu resultado final em uma leitura pós-ordem, caso seus valores fossem
adicionados sequencialmente, do primeiro ao último elemento, em uma árvore
binária? Para montar uma árvore binária, os elementos menores ou iguais ao
nó mais abaixo entrará à esquerda; caso contrário, ficará à direita.
A D A M O M G O R R U R P.
8. Uma árvore binária que tenha como finalidade resolver problemas aritméticos,
necessita que sua leitura seja feita de tal modo a combinar dois operandos
para o operador da expressão. Exemplo: A + B.
Portanto, como uma árvore deveria posicionar seus elementos e qual seria a
melhor forma de leitura para que as operações ocorram?
É preferível que os valores da operação aritmética estejam localizados à esquerda e à direita da
raiz, desde que o operador seja raiz, e a leitura da árvore seja feita em-ordem.
9. O caminhamento de uma árvore binária influencia diretamente no resultado
final de leitura de uma determinada sequência de símbolos, e pode se
encontrar em 3 tipos, como percursos em pré-ordem, in-ordem e pós-ordem,
variando, assim, a posição do valor raiz.
Qual função a seguir descreve o percurso realizado em pós-ordem?
def funcao(no):
if atual != None:
funcao(no.esquerdo)
funcao(no.direito)
print("Valor: {}.".format(no.valor))
10. O modo como é feito o percurso determina como será o nível de prioridade de
leitura dos elementos, podendo o nó raiz estar com prioridade (leitura em pré-
ordem), ou os elementos da subárvore à esquerda (leitura in-ordem), ou os
elementos da subárvore à esquerda seguido da leitura à direita (pós-ordem).
Considerando a imagem a seguir, mostre a sequência de expressões
resultantes, conforme os percursos de pré-ordem, em-ordem e pós-ordem,
respectivamente.
* 3 * 5 13
3 * 5 * 13
3 5 13 * *
11. 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?
A subárvore esquerda de um nó contém os nós com chaves menores ou iguais que a do nó.
12. 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.
Visitou chave 70.
Visitou chave 90.
Visitou chave 83.
Visitou chave 85.
Visitou chave 89.
Resultado: falha.
13. 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.
[70,90,4,114,2,23,83,116,72,15,85,89,63].
14. 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?
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.
15. 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?
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.
16. Uma das principais vantagens das árvores binárias em relação às demais
estruturas de dados é a sua eficiência no processo de realizar buscas. A árvore
AVL é conhecida por ter um resultado muito eficiente durante a operação de
busca, pois realiza uma distribuição homogênea dos dados.
Qual a ideia central ao fazer o balanceamento em uma árvore?
A ideia central do balanceamento é que, para cada novo elemento adicionado ou removido da
árvore, seja realizado uma reorganização para que a distribuição dos elementos conforme sua
subárvore, continue homogênea.
17. As árvores AVL correspondem à família das árvores binárias, em que a
distribuição dos elementos é feita de acordo com determinadas condições, as
quais são necessárias para garantir o balanceamento da árvore.
Em relação à altura de uma AVL, qual é a afirmação correta?
A altura de uma árvore nula é igual a -1.
18. Uma árvore AVL é uma árvore binária muito utilizada para armazenamento de
dados em memória. Cada nó de uma árvore AVL necessita da informação de
altura, pois é fundamental para o processo de balanceamento. Para um nó
folha, que tem uma altura igual a 1, sendo que essa árvore AVL tem 7 nós.
Qual é a altura máxima que essa árvore pode ter?
3.
19. Uma árvore AVL tem as funções básicas como inserção, remoção e busca,
assim como uma árvore simples. Considere a seguinte árvore AVL.
Qual das alternativas a seguir é a árvore AVL atualizada após a inserção de
70?
Confira a alternativa C:
20. No processode realizar o balanceamento de uma árvore AVL, após a exclusão
ou inclusão são realizadas operações para realizar o balanceamento.
Quais das seguintes operações são usadas pelas árvores AVL?
Rotação à esquerda e rotação à direita.