INF1010 Lista de Exercícios 2

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

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

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

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

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

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

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

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

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

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

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

Universidade Federal de Mato Grosso Estrutura de Dados II

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

ÁRVORES. Prof. Yan ndre Maldonado - 1. Prof. Yandre Maldonado e Gomes da Costa

Árvores AVL. Prof. Robinson Alves

DAINF - Departamento de Informática

Árvores Binárias de Busca

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

Árvores Binárias de Busca

Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros:

Árvores binárias de busca

Árvores & Árvores Binárias

Aula 08. Estruturas de dados Árvore e Grafo

AED2 - Aula 04 Vetores ordenados e árvores de busca

Árvores & Árvores Binárias

Árvores Conceitos gerais

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

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

ÁRVORES E ÁRVORES BINÁRIAS. Adaptado de Alexandre P

Árvore binária - definição

Árvores binárias de busca

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

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

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

UFJF - DCC - Estrutura de Dados e Laboratório de Programação II

Linguagem C: Árvores AVL

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

Programação II. Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio

Árvores binárias de busca

Árvores Rubro-Negra IFRN

Árvore Vermelho-Preta. Estrutura de Dados II Jairo Francisco de Souza

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Estruturas de Dados. Árvores. Onde Estamos? Introdução à estrutura de dados. Alocação dinâmica de memória. Pilhas. Filas.

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

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

Árvores Binárias de Busca

Árvores AVL e Árvores B. Jeane Melo

Estruturas de Dados II

Árvores & Árvores Binárias

Aula 19 Árvores Rubro-Negras

Arvores, Percursos não recursivos, Arvores heterogêneas. Aula 19

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

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

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

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

Árvores Binárias. 9/11 e 11/11 Conceitos Representação e Implementação

ÁRVORES. Árvores. Árvores. Prof. Yandre Maldonado e Gomes da Costa

Árvores Binárias. 16/11 Representação e Implementação: Encadeada Dinâmica O TAD

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

INF 1620 P2-23/10/04 Questão 1 Nome:

ESTRUTURA DE DADOS. Árvores, árvores binárias e percursos. Cristina Boeres

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

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

Aula 19: Percursos em árvores binárias. Percurso em pré-ordem, ordem simétrica e pós-ordem. Algoritmo para cálculo de altura uma árvore binária

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

Aula 13 Árvores Rubro-Negras

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

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8.

Árvores Binárias Balanceadas Estrutura de Dados I

ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1

Algoritmos e Estruturas de Dados I

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

Universidade Federal do ABC Avaliação Disciplina Turma Professor Data Instruções para a prova (leia antes de começar): SelectionSort selectonsortrec

INE5408 Estruturas de Dados

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

Árvores Vermelho-Preto

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

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

ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS. Cristina Boeres

Árvores Vermelho-Preto

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

Introdução aos Algoritmos e Estruturas de Dados. 2 o Teste - A

UNIVERSIDADE DA BEIRA INTERIOR

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

ICET CURSO: Ciência da Computação e Sistemas de Informação (Estrutura de Dados) Estudos Disciplinares Campus: Data: / / Nome:

Árvores. Algoritmos e Estruturas de Dados I. José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP

UNIVERSIDADE DA BEIRA INTERIOR

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

Árvores. Prof. César Melo ICOMP/UFAM

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

Algoritmo de Dijkstra Estudo e Implementação

Estrutura de Dados: Aula 3 - Linguagem C

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

ESTRUTURAS DISCRETAS (INF 1631) GRAFOS. 1. O que é um grafo? Defina um grafo orientado. Defina um grafo não-orientado.

Grupo 2 - Implementação de uma Classe Simples

Algoritmos e Estrutura de Dados II. Árvore AVL. Prof a Karina Oliveira. Fonte: Prof a Ana Eliza

Transcrição:

INF00 Lista de Exercícios 2 Árvores. Construir algoritmo para dada uma árvore n-ária, transformá-la em uma árvore binária. 2. Qual a maior e menor quantidade de nós que podem existir em uma árvore binária completa de altura h? 3. Represente a sequência abaixo na forma de árvores binárias de alturas mínima e máxima. s = { 3,, 9, 2, 4, 6, 7, } 4. Escrever uma rotina em C para buscar a informação em um nó de uma árvore binária de busca, sendo dada a sua chave. Cuide para que a rotina seja eficiente.. Achar o maior elemento (campo numérico) de uma árvore binária dada. 6. Uma árvore binária é zig-zag quando é vazia ou quando não possui nós cheios. Sem usar recursividade, escreva, em C, uma função que recebe o endereço do nó raiz de uma árvore binária e verifica se ela é zig-zag. Se a árvore dada for zig-zag, a função deverá retornar sua altura; caso contrário, deverá retornar. Não utilize estruturas de dados auxiliares (pilhas, filas, etc...); apenas variáveis locais dos tipos ponteiro ou inteiro. 7. Uma árvore binária cuja altura é igual ao número de nós pode possuir nós cheios? Justifique. 8. Desenhe uma árvore estritamente binária com 7 nós para a qual os percursos em pré-ordem e inordem produzem a mesma sequência de visitas. 9. Toda árvore binária cheia é completa. 0. Dados os percursos abaixo, reconstruir a árvore original: pré-ordem:, 2, 3, 6, 8, 4, 9, 0, 2,,, 7, I simétrica (in-ordem) : 6, 3, 8, 2, 4, 9, 2, 0,,, I, 7,. Escrever rotina em pseudo-código e em C para percorrer uma árvore binária qualquer, em nível, das folhas para a raiz. Indique a complexidade do algoritmo. 2. Responda Certo ou Errado, justificando. a. Qualquer que seja o número de chaves, é sempre possível construir com elas uma árvore binária completa. b. Qualquer que seja o número de chaves, é sempre possível construir com elas uma árvore binária cheia. c. Uma árvore binária que possui as folhas no último ou penúltimo níveis é completa. d. Dada uma árvore binária com mais de 3 nós, é possível que um percurso em pre-ordem e um percurso em ordem simétrica visitem os nós na mesma ordem?

3. Utilizando uma árvore binária para representar uma expressão aritmética. a. Represente, em uma árvore binária, a seguinte expressão aritmética, respeitando a precedência usual dos operadores: 2 * ( 3) + (2 + 6) / 4. As folhas devem corresponder aos operandos e os nós interiores aos operadores. Não represente os parênteses. b. Defina, em C, a estrutura do nó da árvore binária utilizada para representar expressões. Assuma que os operandos são inteiros positivos e que apenas os operadores binários +, -, * e / são aceitos. A estrutura deve possuir o menor número possível de campos. c. Escreva em C uma função recursiva que recebe como parâmetro o endereço do nó raiz de uma árvore binária representando uma expressão e retorna como resultado o valor obtido na avaliação da expressão. Utilize a estrutura do nó definida no item c. d. Qual o percurso implementado pela função escrita no item anterior? O que realiza o procedimento de visita? 4. Escreva, em C, uma função recursiva que permuta as subárvores esquerda e direita de todos os nós de uma árvore binária. A função deve receber como parâmetro o endereço do nó raiz da subárvore a ser processada. Explicite também a chamada externa.. Verificar se as árvores abaixo são binárias de busca a) 2 b) 2 3 0 3 30 4 6 6 c) 0 20 3 7 22 4 2 2

AVL e Rubro Negra 6. A complexidade da busca em uma árvore binária AVL é O(log n)? e em uma ABB é O(log n)? 7. Considere a árvore AVL a seguir: 3 30 0 20 46 6 40 48 Realize, na árvore dada, a inserção das chaves 6, 70, 38, 44, 49 e 42, atualizando o fator de equilíbrio dos nós a cada inserção. Quando necessário, indique o nó desregulado e a rotação utilizada para regulá-lo. Redesenhe a árvore a cada passo. 8. Qual o número máximo e mínimo de nós em uma árvore AVL de altura h? 9. Escrever algoritmo para verificar se a árvore passada como parâmetro é balanceada. Retorne a altura da árvore. 20. Inserir as chaves 9, 8, 7, 6,, 2, 3, 4, em uma árvore AVL desenhando a árvore após cada inserção. Exclua as chaves 6 e 8, desenhando a árvore após cada inserção e exclusão. 2. Inserir as chaves 9, 8, 7, 6,, 2, 3, 4, em uma árvore Rubro Negra desenhando a árvore após cada inserção. Exclua as chaves 6 e 8, desenhando a árvore após cada inserção e exclusão. 22. Sem utilizar estruturas auxiliares (pilhas, filas,...) escreva em C uma função não recursiva para determinar a altura de uma árvore AVL, visitando o menor número de nós possível. Use a estrutura: typedef struct no t_no; struct no { int chave; int bal; /* fator de balanço: hdir - hesq */ t_no *esq, *dir; }; t_no *raiz; A função deve receber como parâmetro o endereço do nó raiz da árvore e retornar o valor da altura. 23. Apresente duas maneiras distintas de inserir as chaves 0, 20, 30, 40 e 0 em uma árvore AVL inicialmente vazia de modo que só ocorram exatamente 2 rotações duplas no mesmo sentido. Justifique sua resposta, realizando as inserções. 24. Considere uma árvore rubro-negra formada pela inserção de n nós com a operação Inserir. Argumente que se n >, a árvore terá pelo menos um nó VERMELHO. 3

Árvore B 2. Seja uma árvore B de ordem d = 3 e altura h = 3. Qual o número máximo de chaves na árvore? E o numero mínimo? Justifique. 26. Inserir em uma árvore B de ordem 2 vazia, as chaves { 0, 90, 70, 0, 80, 30, 00, 20, 30, 40, 70, 60 } na ordem. Remova sucessivamente da árvore B a menor chave do nó raiz até que a árvore fique vazia. Quando houver possibilidade de optar entre a chave sucessora ou predecessora imediata, opte sempre pela predecessora. Indique as ocorrências de redistribuição ou concatenação. 27. Considere a árvore B de ordem 2 abaixo: 09 80 2 90 4 6 77 8 00 2 22 33 3 40 89 200 20 220 230 Realize as seguintes operações, utilizando sempre a árvore resultante da operação anterior. Redesenhe a árvore a cada passo, indicando os nós que sofrem modificações, bem como a ocorrência de CISÃO, REDISTRIBUIÇÃO ou CONCATENAÇÃO: a) inserção de 0; b) remoção de 89; c) remoção de 80; d) inserção de 6; e) inserção de 66; f) remoção de 09. Use o mesmo critério para remoção dos nós. 28. Descreva as diferenças entre as árvores B e B+, ressaltando: Quantidade de chaves, localização dos dados, número de acessos e diferença entre nós internos e folhas. 29. Responda. a. A que condições deve satisfazer uma árvore B de ordem d para que a inserção de qualquer chave ocasione o aumento da altura da árvore? b. A que condições deve satisfazer uma árvore B de ordem d para que a remoção de qualquer chave ocasione a redução da altura da árvore? c. Por que a redistribuição deve ser tentada antes da concatenação durante a remoção de uma chave situada em um nó com ocupação mínima de uma árvore B? d. Se uma chave não está situada em uma folha de uma árvore B, o que garante que sua sucessora imediata, se existir, estará obrigatoriamente localizada em uma folha? e. Qual é o pior caso do algoritmo de inserção de uma chave em uma árvore B de ordem d? Como deve ser a árvore? 30. Para uma árvore B de ordem d > 0 e altura h > 0, calcule em função de d e h: a. O número mínimo de chaves que ela pode possuir (n MIN ). b. O número máximo de chaves que ela pode possuir (n MAX ). 4

Grafos 3. Desenhe um grafo com 0 vértices e 0 arestas com ciclos. Rotule os vértices e descreva os algoritmos a serem utilizados para realizar uma busca em profundidade e em amplitude. Inclua nos algoritmos uma visita aos nós e descreva que nós foram visitados por cada algoritmo. 32. Percorrer árvore em nível (sugestão: use uma fila como estrutura auxiliar). B A C Fila: A B,C D,E,F,G H, I, J K D E F G H I J K 33. Dado o grafo não direcionado e ponderado ilustrado abaixo, mostre como seria sua representação por matriz de adjacências e mostre também, passo a passo, o algoritmo de Kruskal para cálculo da árvore geradora mínima. Em cada passo do algoritmo mostre como ficaria a partição dinâmica dos nós utilizando a notação de conjuntos (ex.:{ {a,c}, {b,e,f}, {d}} ). 34. Usando o grafo abaixo descrito por uma lista de adjacências, faça: a) A representação do menor caminho (Dijkstra) partindo no vértice. b) A árvore geradora (spanning tree) de custo mínimo (Kruskal).