Your SlideShare is downloading. ×
Exercícios1) Descreva numa notação mais precisa os algoritmos de inserção e de remoção em arvores   AVL, de pesquisa digit...
7) Considere a árvore AVL a seguir:                                             30                              25        ...
1       2       3       4    5               6            7
SoluçãoÍndices gerados a partir da inserção no TRIE.1 -> Utilizada para socorrer pessoas2 -> Gênero encontrado na natureza...
Binária.c#include <stdio.h>#include <stdlib.h>#define TAMANHO 10int main () {int vetor[TAMANHO] = {0,1,2,3,4,5,6,7,8,9};in...
Upcoming SlideShare
Loading in...5
×

Aquece Para a prova de EDA3

1,389

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,389
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
42
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Aquece Para a prova de EDA3"

  1. 1. Exercícios1) Descreva numa notação mais precisa os algoritmos de inserção e de remoção em arvores AVL, de pesquisa digital, binária de busca sem entrarem muitos pormenores de programação.2) Podemos utilizar árvores binárias para representar expressões aritméticas (como ((a+b)*c- d)/(e-f) +g, por exemplo). Tente desenhar uma árvore para a expressão acima, e explique como poderíamos implementar o cálculo da expressão.3) Para a busca de um elemento numa árvore podemos escrever a função abaixo. Teste a função e explique o seu funcionamento.// Função para procurar um elemento numa arvore ARV procura (ARV a , int b) { if (EMPTY(a)) return NULL; else if ( a->info == b ) return a; else if ( b > a->info ) return procura (a->dir, b); else return procura (a->esq, b);}4) Um percurso numa árvore mostra os elementos ali armazenados. No caso de uma árvore binária, podemos percorrer usando 3 estratégias: em ordem, pré-ordem e pós-ordem. A função abaixo mostra uma função de percurso em ordem (esquerda-raiz-direita). Teste a função e mostre o resultado para os elementos de uma árvore binária qualquer.//Função para percorrer a árvore respeitando o critério EM ORDEM void inOrder (ARV a) { if (! EMPTY(a) ) { inOrder(a->esq); printf(" %d ", a->info); inOrder(a->dir);5) Faça as funções para os percursos pré-ordem (raiz-esquerda-direita) e pós-ordem (esquerdadireita-raiz).6) Implemente uma função que retorne a quantidade de folhas de uma árvore binária. Essa função deve obedecer ao protótipo: int folhas (Arv* a);Soluçãoint folhas (Arv* a){if (arv_vazia(a->esq) && arv_vazia(a->dir)) return 1;else if (!arv_vazia(a->esq) && arv_vazia(a->dir)) return folhas(a->esq); else if (arv_vazia(a->esq) && !arv_vazia(a->dir)) return folhas(a->dir);return folhas(a->esq) + folhas(a->dir);}
  2. 2. 7) Considere a árvore AVL a seguir: 30 25 45 15 41 56 35 43 50 Realize, na árvore acima, as inserções das seguintes chaves 49, 60, 65, e em seguida a remoção das chaves 45 e 41, escolhendo necessariamente imediatamente precedente para a posição da chave removida. Mostre todas as rotações e o formato da árvore após cada operação.8) 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 69) Quais chaves/palavras estão representadas nesta TRIE?Solução: foi, fora, fui vai, ver, veremos, vi, viu, vimos10) Demonstre a árvore TRIE (passo a passo) para as seguintes chaves, bem como seus significados:MACA – MACHO – MATO – BALA – BANANA – BALELA - BALEIASolução
  3. 3. 1 2 3 4 5 6 7
  4. 4. SoluçãoÍndices gerados a partir da inserção no TRIE.1 -> Utilizada para socorrer pessoas2 -> Gênero encontrado na natureza3 -> Local com árvores e animais4 -> Doce conhecido entre crianças e “professores”5 -> Fruta tropical6 -> No sentido de enrolação7 -> Animal encontra no mar11) Qual seria o resultado utilizando uma árvore TRIE A partir das digitações abaixo: Solução B -> BALA, BALEIA, BALELA, BANANA BA -> BALA, BALEIA, BALELA, BANANA BAL -> BALA, BALEIA, BALELA BALE -> BALEIA, BALELA BALEL -> BALELA12) Dada uma árvore PATRICIA, forneça as seguintes informações: a) Conceito b) Características c) Funcionamento de Inserção/Remoção d) Exemplo13) Descreva o funcionamento das pesquisas seqüencial e binária e proponha algoritmos para as mesmas. Utilize alocação estática ou dinâmica.SoluçãoSequencial.c#include <stdio.h>#include <stdlib.h>#define TAMANHO 10int main () {int vetor[TAMANHO] = {0,3,4,7,5,2,9,6,1,8};int valor = 11;int i;int encontrado;i = 0;encontrado = 0; /*Falso*/while (i < TAMANHO && !encontrado) { if (vetor[i] == valor) { encontrado = 1; /*Verdadeiro*/ } else { i++; }}if (encontrado) { printf ("Valor %d encontrado na posicao %dn", vetor[i], i);} else { printf ("Valor %d nao encontradon", valor);}system("pause");return 0;}
  5. 5. Binária.c#include <stdio.h>#include <stdlib.h>#define TAMANHO 10int main () {int vetor[TAMANHO] = {0,1,2,3,4,5,6,7,8,9};int valor = 3;int encontrado;int direita, esquerda, meio;encontrado = 0; /*Falso*/esquerda = 0;direita = TAMANHO - 1;while (esquerda <= direita && !encontrado) { meio = (direita + esquerda) / 2;if (vetor[meio] == valor) encontrado = 1; /*Verdadeiro*/else if (valor < vetor[meio]) direita = meio - 1; else esquerda = meio + 1;}if (encontrado) { printf ("Valor %d encontrado na posicao %dn", vetor[meio],meio);} else { printf ("Valor %d não encontradon", valor);}return 0;}14) Dada uma tabela Hash, forneça as seguintes informações: a) Conceito b) Características c) Funcionamento15) Demonstre a inserção das chaves 5, 28, 19,15,20,33,12,17 e 10 em uma tabela hash com colisões resolvidas por encadeamento. Considere a tabela com 9 posições e a função hash como sendo h(k) = k mod 9

×