Escolar Documentos
Profissional Documentos
Cultura Documentos
OBS: Nas questões objetivas, o aluno deve justificar a resposta escolhida e todas a
demais não escolhidas, apontando o que está certo/errado nas opções.
Especificação da atividade:
QUESTÃO 1 – Uma lista encadeada é uma estrutura que corresponde a uma sequência
lógica de entradas ou nós. Cada nó armazena a localização do próximo elemento na
sequência, ou seja, de seu nó sucessor.
Este tipo de estrutura é muito utilizado em diversas linguagens de programação, tais
como: C, C++, Java, C#, Python, etc. Em muitas destas linguagens já existem “bibliotecas
prontas” que oferecem os serviços fundamentais para manipular a lista de elementos, não
sendo necessário que os desenvolvedores se preocupem em desenvolvê-las.
Sabendo destas informações, podemos dizer que em uma lista encadeada, (marque a
opção correta) (0,8)
R:
A) A politica de inserção foi que o 1º elemento será a raiz e o restante será alocado
conforme algoritmo, maior para a direita e menor para a esquerda.
B) Arvore cheia é quando cada nó tem 0 ou 2 filhos, deveria ser inserido 2 nós
deveriam ser inseridos, o valor 9 e 15 por exemplo ocupariam os espaços
necessários para se tornar uma arvore cheia.
C) Pré-ordem: 8 3 1 6 4 7 10 14 13
Em ordem: 1 3 6 4 7 8 10 14 13
Pós ordem: 1 3 6 4 7 10 14 13 8
D) Seria criado uma struct com ponteiros para esquerda e direita, e um valor chave,
criado o método de inserção e de leitura(Em ordem, pré-ordem, pós ordem) e seus
testes no método main
I. A árvore é uma estrutura linear que permite representar uma relação de hierarquia. Ela
possui um nó raiz e subárvores não vazias.
II. Na árvore binária o percurso permite a obtenção da sequência linear de seus nós. Na
árvore binária de busca, um dos percursos permite que os nós sejam obtidos de forma
ordenada.
III. O processo de balanceamento (estático ou dinâmico) otimiza a busca em árvores
binárias, minimizando sua altura.
IV. Uma árvore-B não pode ser usada para armazenamento de dados em disco, pois
necessita de um número maior de nós (maior altura) quando comparada a uma árvore
binária.
R:
I. As arvores são estruturas hierárquicas.
II. Como os registros são inseridos sempre analisando maior para a direita e o
menos para a esquerda, os registro são armazenados ordenados, fazendo com
que os nós sejam obtidos de forma ordenada.
III. O processo de balanceamento em arvores, proporciona uma arvore bem
estruturada e proporciona ganhos de processamento e otimização.
IV. Uma árvore B é uma estrutura de dados projetada para funcionar especialmente
em memória secundária como um disco magnético ou outros dispositivos de
armazenamento secundário.
QUESTÃO 5 – <Análise> Árvore AVL é uma árvore binária de busca balanceada. O nome
AVL vem de seus criadores soviéticos Adelson Velsky e Landis, e sua primeira referência
encontra-se no documento “Algoritmos para organização da informação” de 1962. Uma
árvore binária T é denominada AVL quando, para qualquer nó de T, as alturas de suas
duas subárvores, esquerda e direita, diferem em módulo de até uma unidade. Baseado
nestas informações, qual das figuras de árvores mostradas a seguir representa uma
árvore do tipo AVL (0,8)?
R: A, D e E são uma arvore AVL pois as alturas são no máximo 1 , B e C não é uma
arvore AVL pois as alturas de cada arvore esquerda e direita são maiores que 1.
7 95
8 92
9 122
10 266
11 212
R:
Inserir: 98 houve desbalanceamento na subarvore da esquerda, que é corrigida com uma rotação
LR
90
84 109
45 98 208
Inserir: 92 houve desbalanceamento na subarvore da direita, que é corrigida com uma rotação
RR.
90
84 109
45 95 208
92 98
Inserir: 212 houve desbalanceamento na subarvore da direita de raiz 109, que é corrigida com
uma rotação LL.
109
90 208
84 95 122 266
45 92 98 212
109
84 208
45 95 122 266
92 98 212
QUESTÃO 7 – Uma
pC LeftNode pC que
= pB; árvore B é um tipo de árvore RightNode = pB; balanceada com o
se mantém
decorrer do tempo, usando-se uma série de operações que garantem a manutenção de
pA LeftNode = pC RightNode; pA RigthNode = pC LeftNode;
uma série de propriedades importantes. Ela possui uma propriedade denominada ordem,
que consiste no número máximo de filhos que cada nó pode ter. Com base nesses
conceitos, considere as seguintes propriedades da árvore B [Cormen,T – Algoritmos –
Capítulo 10 – 2a edição] (0,7):
III) em uma árvore B de ordem maior do que 1, é possível que uma folha armazene
apenas um elemento.
R:
I. A raiz pode armazenar somente 1 elemento
II. Nó folha sempre aponta para null
III. Sim , é possível em uma arvore de ordem 2 sendo a ordem o número máximo
de filhos. Entao a folha poderá ter 2 filhos (apontando para null) contendo
apenas 1 chave.
INSERIR (201, 102, 304, 403, 508, 152, 602, 651, 273, 284, 701, 291, 805, 286, 276, 752,
641, 160).
REMOVER (602, 284, 701, 805, 201, 152, 508, 273 e 291)
R: Para deletar o Heap seria remover o elemento na raiz do nó. O processo deleta o
elemento máximo.
Se o elemento a ser removido não estiver nas pontas, isso é, for um elemento
intermediário, pode virar um problema. Então o elemento a ser deletado troca de lugares
com o último elemento e então deletamos o novo último elemento.
Por exemplo:
Se tratando de um Heap Max onde se quer deletar a raíz (7):
5 3
1 4
5 3
4 3
Código:
if (maior != i) {
int temp = ele[i];
ele[i] = ele[maior];
ele[maior] = temp;
heapificar(ele, n, maior);
}
}