Escolar Documentos
Profissional Documentos
Cultura Documentos
5. Uma árvore estritamente binária é uma árvore binária em que cada nó tem 0 ou 2 filhos.
Uma árvore binária cheia é uma árvore em que se um nó tem alguma sub-árvore vazia
então ele está no último nível. Uma árvore completa é aquela em se n é um nó com
algumas de subárvores vazias, então n se localiza no penúltimo ou no último nível.
Portanto, toda árvore cheia é completa e estritamente binária. A Figura a seguir mostra
uma árvore estritamente binária, completa e cheia.
Escreva um algoritmo para verifcar se uma árvore binária é estritamente binária, completa
ou cheia.
Obs: para alguns autores, os conceitos podem ser diferentes, sendo que o que chamamos
aí de árvore cheia (c) recebe o nome de completa e o que foi chamado de completa (b)
recebe o nome de quase-completa.
10. Duas árvores binárias são similares se elas são vazias ou se elas não são vazias e suas
subarvores da esquerda são similares e suas subarvores da direita são também similares.
Escreva um algoritmo para determinar se duas árvores binárias são similares.
Veja figura a seguir com uma trie para as palavras to, tea, ted, ten, A e inn (desconsidere os
números):
Em geral, uma trie possui um grupo disperso de chaves, desse modo, muitos nós possuem
apenas um descendente. Isto faz com que as tries tenham um custo grande de espaço. A
árvore PATRICIA, que é uma árvore de prefixos binária, é uma representação compacta de
uma trie onde os nós que teriam apenas um filho são agrupados nos seus antecessores.
Veja exemplo a seguir:
Seu objetivo é Implementar uma árvore PATRÍCIA genérica, com operações de inserção e
remoção disponíveis.
13 - Árvore de Palavras (Resolução por Árvore Binária)
Considere um arquivo texto preenchido. Esse arquivo deve ser o parâmetro de entrada para
o seu sistema que deve:
● armazenar cada palavra do texto em um nó de uma árvore binária de busca;
● armazenar, para cada palavra, a posição em que ela aparece no texto, por exemplo:
Neste exemplo a palavra e aparece nas posições 1, 16 e 19, ou seja, ela aparece mais de
uma vez no texto, mas deve ser representada por apenas um nó na árvore. As posições das
repetições devem ser armazenadas no mesmo nó.
Considere que as palavras serão escritas sem acentos e que, antes de serem
armazenadas, devem ser convertidas para caracteres minúsculos apenas. Desconsidere
caracteres de pontução.
Seu programa deve, ainda, permitir a busca por uma determinada palavra. Caso a palavra
esteja presente na árvore, o programa deverá imprimir a palavra buscada e as posições em
que se encontra. Caso a palavra não seja encontrada, o programa deve mostrar uma
mensagem avisando a ocorrência.
As amizades são armazenadas através do identificador das pessoas com as quais uma
determinada pessoa tem amizade. As pessoas serão armazenadas em uma árvore binária
de busca utilizando o seu identificador como chave e, para cada pessoa, será armazenada
uma árvore binária de busca com os identificadores das pessoas amigas.
Implemente, usando como base árvores binárias de busca, um sistema que permita:
● a inserção de novos usuários na rede social;
● a remoção de usuários da rede social;
● inclusão de novos amigos para uma determinada pessoa;
● a consulta de amizade entre duas pessoas;
● encontrar o caminho de amizade entre duas pessoas.
Caminho de amizade: este método deve receber o identificador de duas pessoas que já
estão no sistema, verificar se elas possuem relação de amizade e, em caso negativo, deve
mostrar um possível caminho de amizade entre as duas. Por exemplo, considere o exemplo
abaixo com os usuários da rede social:
Dessa forma, pode ser estabelecido um caminho de amizade entre Kal-el e Poison Ivy:
16 - Torres de Hanoi (Resolução por Árvore Binária) - Adaptado de [Langsam,
Augenstein & Tenenbaum, 1996]
O problema das Torres de Hanoi pode ser descrito como: existem 3 torres, A, B e C, com n
discos de diferentes diâmetros são empilhados em A. Um disco de diâmetro maior é sempre
colocado abaixo de um disco de diâmetro menor. O objetivo é mover os n discos para a
torre C, usando a torre B como auxiliar. Apenas o disco no topo de uma torre pode ser
movido para outra torre, e um disco de diâmetro maior nunca pode ser colocado sobre um
disco de diâmetro menor. A solução para o problema das Torres de Hanoi com n discos
pode ser representado por uma árvore binária completa de nível n – 1, como descrito a
seguir:
a) Seja a raiz da árvore a representação do movimento de um disco do topo de uma torre
qualquer para outra torre qualquer.
b) Seja um nó N uma representação do movimento da torre X (origem) para a torre Y
(destino), e seja Z a terceira torre, que não é a origem nem o destino do disco em
movimento. Então esquerda(N) representa o movimento de X para Z e direita(N) representa
o movimento de Z para Y. O percurso in-order da árvore resultante produz a solução para o
problema das Torres de Hanoi com n discos. Veja a ilustração a seguir.
Implemente um método que aceite a quantidade de discos N, gere e percorra a árvore como
apresentado anteriormente.
17. Realize as seguintes operações em uma AVL vazia inicialmente:
a) Inserir na ordem de chegada os elementos: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16
b) Remover na ordem de requisição os elementos: 9, 10, 11, 12, 1, 2, 3
c) Inserir os elementos, na ordem de chegada: 11, 17, 18, 19, 20, 1
d) Buscar os elementos: 1, 2, 3, 18, 19, 20
21. Insira em uma árvore AVL, itens com as chaves apresentadas nos itens a seguir (na
ordem
em que aparecem). Desenhe a árvore resultante da inserção, sendo que uma nova árvore
deve ser desenhada quando houver uma rotação. Indique qual a rotação que foi executada.
a) 30, 40, 24, 58, 48, 26, 11, 13, 14
b) 20, 15, 25, 10, 30, 24, 17, 12, 5, 3
c) 40, 30, 50, 45, 55, 52
d) 20, 15, 25, 12, 17, 24, 30, 10, 14, 13
e) 20, 15, 25, 12, 17, 30, 26
22. Mostre as árvores Rubro-Negras que resultam após a inserção bem-sucedida das
chaves 41, 38, 31, 12, 18, 8 em uma árvore Rubro-Negra inicialmente vazia. Em
seguida, mostre as árvores Rubro-Negras que resultam da eliminação sucessiva das
chaves na seguinte ordem: 8, 12, 18, 31, 38, 41.