Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C

Documentos relacionados
UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio;

INF1010 Lista de Exercícios 2

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Árvores Rubro-Negras. Árvores Rubro-Negras. (Vermelho-Preta) Estrutura da Árvore. Estrutura da Árvore

Estruturas de Dados. Cristina Gomes Fernandes. Estruturas de Dados p. 1

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

Estruturas de Dados. Cristina Gomes Fernandes. Estruturas de Dados p. 1

1. Proponha algoritmos para: a. Calcular a altura dos nós de uma árvore binária dada, armazenando o valor da altura no nó.

SCC Algoritmos e Estruturas de Dados II. 6ª lista de exercícios

1. Proponha algoritmos para: a. Calcular a altura dos nós de uma árvore binária dada, armazenando o valor da altura no nó.

ALGORITMOS AVANÇADOS. UNIDADE V Estruturas de dados dos tipos Árvore Binária e Árvore AVL. Luiz Leão

ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres

Árvores binárias de busca

Árvores binárias de busca

Estruturas de Dados. Aula 08. Árvores AVL II. Karina Mochetti

ÁRVORES E ÁRVORES BINÁRIAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Pesquisa em memória primária

Árvores Binárias. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 17/03/2015

Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256

Árvores & Árvores Binárias

Árvores & Árvores Binárias

Árvores Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação

Árvores & Árvores Binárias

Estruturas de Dados II

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

Árvores. Listas e árvores. Árvores. Árvores. Árvores. Árvores 03/11/2011. Listas lineares

AED1 - Árvores. Hebert Coelho. Instituto de Informática Universidade Federal de Goiás. HC AED1-Árvores 1/49

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Edital de Seleção 053/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Árvores Binárias de Busca

ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Árvores Binárias de Busca

Exercícios: Vetores e Matrizes

Universidade de São Paulo

ÁRVORE AVL. Problema do balanceamento

1. Faça um programa que leia uma string digitada pelo usuário e salve em um arquivo em branco.

DAINF - Departamento de Informática

Algoritmos e Estrutura de Dados II. Árvore AVL. Prof Márcio Bueno. / Material da Prof a Ana Eliza

Estrutura de Dados Árvores Prof. Tiago Eugenio de Melo, MSc material de referência

Árvores. Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque. Engenharia da Computação. Poli - UPE

Tabelas de dispersão/hash

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)

CES-11. Árvores. Conceito de árvore. Definição recursiva de árvore Definições associadas a árvore. Ordenação dos nós de uma árvore

ESTRUTURA DE DADOS CIÊNCIA E TECNOLOGIA DO RIO. Curso de Tecnologia em Sistemas para Internet

ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS. Cristina Boeres

Lista de Exercícios. Av. Trabalhador São-carlense, 400. centro. São Carlos - SP cep Brasil.

Árvores Binárias de Busca

8. Árvores. Fernando Silva DCC-FCUP. Estruturas de Dados. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38

8. Árvores. Fernando Silva. Estruturas de Dados DCC-FCUP. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38

INF 1010 Estruturas de Dados Avançadas. Árvores binárias

2. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.

Linguagem Haskell. Maria Adriana Vidigal de Lima

CONCEITO DE ÁRVORE CES-11. A raiz é o único nó que não possui ancestrais. As folhas são os nós sem filhos. Exemplos:

AED2 - Aulas 06 e 07 Árvores AVL e rubro-negras

Árvores Binárias de Busca (ABB) 18/11

Árvores AVL (Balanceadas) Profª.Drª. Roseli Ap. Francelin Romero Fonte: Profa. Patrícia Marchetti Revisão: Gedson Faria

Algoritmos e Estruturas de Dados II Árvores - AVL. Prof. César Melo DCC/ICE/UFAM

Exemplo Árvore Binária

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

{ = == NULL) = == NULL)

Trabalho Prático 1. Valor: 1,0 pontos (10% da nota total) Data de Entrega: 02/05/2010

Árvores Conceitos gerais

Universidade Federal de Mato Grosso Estrutura de Dados II

Árvore binária - definição

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação

CES-11. Algoritmos e Estruturas de Dados

Métodos de Pesquisa de Dados (II) Árvore N-ária de Pesquisa

Árvores. N-árias, Binárias, Busca. Vanessa Maia Berny Mestrado em Ciência da Computação

Tipos e Estruturas de Dados Profa. Graça Nunes Lista de Exercícios (Listas Encadeadas, Duplamente Encadeadas e Circulares)

Árvores. Árvores M-Vias. Métodos de Pesquisa de Dados. de Pesquisa (ANP) VANTAGENS EXEMPLO

Árvores Rubro-Negra IFRN

Estruturas de Dados. Profº Carlos Alberto Teixeira Batista

Grafos: Busca. SCE-183 Algoritmos e Estruturas de Dados 2. Thiago A. S. Pardo Maria Cristina

CAP Exame de Admissão 16/12/2013. Instruções Gerais (leia atentamente)

Introdução a AVL: teoria e prática. 22/11, 25/11 e 30/11

ÁRVORE BINÁRIA DE BUSCA TDA-ABB

Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias

Árvores Binárias de Busca (ABB) 18/11

Estrutura de Dados: Aula 3 - Linguagem C

Uma árvore binária de busca não garante acesso em tempo logarítmico.

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior

Árvores - Conceitos. Roseli Ap. Francelin Romero

Árvores Binárias Balanceadas Estrutura de Dados I

Dicionários. TAD Orientado a conteúdo

PAA-DCC-UFAM. Árvores. Universidade Federal do Amazonas Departamento de Eletrônica e Computação

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação

PROGRAMAÇÃO III (LTSI)

UNILASALLE Curso de Bacharelado em Ciência da Computação. Estrutura de Dados II Prof. Magalí T. Longhi. Árvores AVL*

ESTRUTURA DE DADOS DCC013. Árvore Binária de Busca

Árvores-B (Parte Ib) SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes

Prof. Jesus José de Oliveira Neto

MCTA001 Algoritmos e Estruturas de Dados I. Aula 08 Árvores (parte 1) Laboratório

Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.

Transcrição:

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C Exercícios: Árvores 1. Utilizando os conceitos de grafos, defina uma árvore. 2. Escreva uma função que conta o número de nós de uma árvore binária. 3. Escreva uma função que conta o número de nós não-folha de uma árvore binária. 4. Escreva uma função que conta o número de folhas de uma árvore binária. 5. Escreva uma função que calcula a altura de uma árvore binária. 6. Escreva uma função para buscar um número impar em uma árvore binária NÃO ordenada. 7. Escreva uma função para achar o MAIOR número em uma árvore binária NÃO ordenada. 8. Escreva uma função que exclui todos os nós de uma árvore binária NÃO ordenada com ID par. 9. Escreva uma função que exclui todos os nós de uma árvore binária de busca com ID par. 10. Escreva uma função que retorna verdadeiro se uma árvore é binária de busca e falso caso contrário 11. Escreva uma função que encontra o valor máximo em uma árvore de busca binária. 12. Escreva uma função que obtém o espelho de uma árvore, ou seja, troca a subárvore direita pela subárvore esquerda de todos os nós da árvore 13. Duas ABBs são SIMILARES se possuem a mesma distribuição de nós (independente dos valores nos mesmos). Em uma definição mais formal, duas ABBs são SIMILARES se são ambas vazia, ou se suas subárvores esquerdas são similares, e suas subárvores direitas também são similares. Implemente a função que verifica se duas árvores são similares. 14. Duas ABBs são IGUAIS se são ambas vazias ou então se armazenam valores iguais em suas raizes, suas subárvores esquerdas são iguais, e suas subárvores direitas são iguais. Implemente a função que verifica se duas árvores são simlares. 1

15. Uma ABB é estritamente binária se todos os nós da árvore tem 2 filhos. Implemente uma função que verifica se uma ABB é estritamente binária. 16. Implemente uma função para testar se uma árvore binária é uma ABB. 17. Pense na implementação não recursiva dos algoritmos de inserção, remoção e busca em uma ABB. 18. Dada uma ABB inicialmente vazia, insira (E DESENHE) os seguintes elementos (nessa ordem): M, F, S, D, J, P, U, A, E, H, Q, T, W, K. 19. Dada uma ABB inicialmente vazia, insira (E DESENHE) os seguintes elementos (nessa ordem): A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z. 20. Descreva a ordem de visita para um percurso em pré-ordem, em-ordem e pós-ordem na árvore abaixo 21. Qual a diferença de uma ABB para uma AVL? 22. O que difere na implementação da função de busca de uma ABB e de uma AVL? 23. Obtenha a equação que relaciona a altura de uma árvore binária completa com o seu número de vértices. 24. Escreva funções não recursivas para realizar os 3 tipos de percurso na árvore binária (dica: use uma pilha): (a) pré-ordem (b) em-ordem (c) pós-ordem 25. Escreva uma função não-recursiva que retorne o menor valor de uma árvore binária (não ordenada) 26. Escreva uma função não-recursiva que retorne o menor valor de uma árvore binária de busca. 27. Escreva uma função não-recursiva que retorne o k-ésimo menor valor de uma árvore binária de busca. 28. Escreva uma função que retorne o elemento menor ou igual (floor) que um de referência x em uma ABB. 2

29. Escreva uma função não-recursiva que verifique a existência de um valor X na árvore binária. 30. Escreva uma função não-recursiva que verifique a existência de um valor negativo na árvore binária. 31. Escreva uma função não-recursiva que verifique se uma árvore binária é também de busca. 32. Mostre passo a passo a árvore binária resultante das seguintes operações: (a) Inserção de 7, 8, 3, 4, 2, 1, 6, 5 (b) Mostre o percurso em pré-ordem, em-ordem e pós-ordem (c) Remoção de 7 e 6 33. Escreva e implemente um algoritmo não recursivo para obter a altura de uma ABB. 34. Escreva e implemente um algoritmo que dada uma ABB, construa uma outra árvore ABB aproximadamente completa. Para isso, obtenha todas as chaves e valores e insira na nova árvore sempre o elemento mediano das chaves ainda não inseridas. 35. Faça uma função que retorne a quantidade de folhas de uma árvore binária de busca. 36. Faça uma função que retorne a quantidade de nós de uma árvore binária de busca que possuem apenas um filho. 37. Faça uma função que, dada uma árvore binária de busca, retorne a quantidade de nós que guardam números primos. 38. Faça uma função que compare se duas árvores binárias de busca são iguais. 39. Faça uma função que retorna a lista de caminhos da raiz até cada folha. 40. Escreva uma função que faça o percurso em nível em uma árvore binária. O percurso em nível (ou em largura) em uma árvore é um percurso que visita, em ordem crescente, todos os nós de um nível antes de continuar a visita no nível seguinte. Uma das formas de implementar é utilizar uma fila (FIFO) para guardar quais serão os próximos nodes a serem visitados. 41. Considere a árvore rubro-negra caida para a esquerda cujo percurso em nível (em largura) é: 67 51 87 23 53 82 90 17 31 52 60 16 21. Liste as chaves em nós rubros em ordem crescente. 42. Defina com suas palavras o que é uma árvore AVL e como ela funciona. 43. Explique as vantagens e desvantagens de usar árvores binárias balanceadas? 44. Desenhe a árvore AVL resultante da inserção dos seguintes nós: 35, 39, 51, 20, 13, 28, 22, 32, 25, 33 (nesta ordem). 45. Qual a diferença de uma árvore binária de busca para uma AVL? 46. Uma árvore binária de busca é estritamente binária se todos os nós da árvore tem 2 filhos. Implemente uma função que verifica se uma árvore binária de busca é estritamente binária. 47. Escreva um programa para copiar uma árvore binária. 3

48. Faça um esquema gráfico que represente a estrutura final de uma árvore AVL gerada pela inserção dos números 13, 7, 31, 43, 8, 17, 5, 3, 1, 23, 16 e 36 nesta ordem 49. Modifique a implementação da árvore de busca binária para que ela lide corretamente com chaves duplicadas. Isto é, se uma chave já está na árvore, a nova dever substituir a antiga. 50. Exiba as árvores binárias com alturas de 2, 3, 4, 5 e 6, que contenham as sete chaves: 1, 4, 5, 10, 16, 17 e 21. Eemplo: com altura de 2: 10 / \ 4 17 / \ / \ 1 5 16 21 51. Considere a árvore mostrada na figura abaixo e responda: (a) Quais são os nós folhas? (b) Quais nós são ancestrais de C? (c) Quais são os descendentes de C? (d) Qual é a altura da árvore? (e) Quais são os nós com grau 1 e 2? (f) Quantos caminhos de comprimento três existem? 52. Crie uma árvore binária de busca, adicionando um a um, e nesta ordem, os seguintes números: 5, 6, 3, 8, 7, 4, 1 e 2. 53. Quantas árvores de busca binária com nós 1, 2, 3 e 4 existem? 54. Considere uma árvore de busca binária tendo como nós os números de 1 até 1000. Nós procuramos um nó marcado com 363. Qual das seguintes sequências não podem ser os valores dos nodos visitados na busca por 363? (a) 2; 252; 401; 398; 330; 344; 397; 363. (b) 924; 220; 911; 244; 898; 258; 362; 363. (c) 925; 202; 911; 240; 912; 245; 363. (d) 2; 399; 387; 219; 266; 382; 381; 278; 363. (e) 935; 278; 347; 621; 299; 392; 358; 363. 4

55. Dê um pequeno exemplo de como adicionar um número a uma árvore AVL causando uma árvore desbalanceada do tipo direita direita. Rebalancear a árvore. 56. Dê um pequeno exemplo de como adicionar um número a uma árvore AVL causando uma árvore desbalanceada do tipo direita-esquerda. Rebalancear a árvore. 57. Dê um pequeno exemplo de remoção de um número de um árvore AVL causando uma árvore desbalanceada do tipo direita-direita. Rebalancear a árvore. 58. Projete um algoritmo para determinar o menor número em uma árvore AVL. 59. Escreva uma função que receba um nível da árvore e imprima todos os nós nesse nível. 60. Escreva a função que retorna o número de nós que são divisores da soma de seus filhos. Leve em conta apenas os nós com dois filhos. 61. Dada uma árvore binária e dois nós dela, desenvolva um algoritmo para achar o ancestral comum mais baixo dos dois nós dados. O ancestral comum é um nó que possua os outros dois nós em suas subárvores. O ancestral comum mais baixo é o ancestral comum que tem a maior profundidade. 62. Em uma árvore binária, faça um algoritmo para alterar o valor de cada nó (exceto nó folha) para a soma dos valores dos nós esquerda e direita. 63. Remova da seguinte árvore AVL o nó 8 e, em seguida, adicione um nó com valor 9. 64. Faça um algoritmo que crie uma lista ligada com os nós de uma árvore binária em um percurso em-ordem. 65. Faça um algoritmo para somar os nós presentes nos níveis impares de uma árvore binária 66. Implementar uma função não-recursiva para calcular o tamanho de uma árvore binária. 67. Implementar uma função não-recursiva para cada um dos percursos abaixo (a) em-ordem (b) pós-ordem (c) pré-ordem 5