A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Série de Exercícios. Árvores Exercício 1 Suponhamos que temos uma árvore binária com campos esquerda, direita, e de dados. Os campos de dados contêm.

Apresentações semelhantes


Apresentação em tema: "Série de Exercícios. Árvores Exercício 1 Suponhamos que temos uma árvore binária com campos esquerda, direita, e de dados. Os campos de dados contêm."— Transcrição da apresentação:

1 Série de Exercícios

2 Árvores

3 Exercício 1 Suponhamos que temos uma árvore binária com campos esquerda, direita, e de dados. Os campos de dados contêm números inteiros. A raiz da árvore é r. Sendo o procedimento mistério mostrado abaixo, qual seria o efeito da chamada mistério (r; 0)? void mystery(x; i) { if (x null) { x.value = x.data + i; mystery(x.left, x.value); mystery(x.right, x.value); } Solução Para todos os nós x, da árvore, o valor do campo de dados se torna igual à soma dos campos de dados dos ancestrais de x 3

4 Exercício 1 Suponhamos que temos uma árvore binária com campos esquerda, direita, e de dados. Os campos de dados contêm números inteiros. A raiz da árvore é r. Sendo o procedimento mistério mostrado abaixo, qual seria o efeito da chamada mistério (r; 0)? void mystery(x; i) { if (x null) { x.value = x.data + i; mystery(x.left, x.value); mystery(x.right, x.value); } Solução Para todos os nós x, da árvore, o valor do campo de dados se torna igual à soma dos campos de dados dos ancestrais de x 4

5 Exercício 2 O percurso infixo em uma árvore de busca binária gera uma lista classificada. Suponha que esta lista é armazenada em um array A de tamanho n. Uma árvore de busca binária globalmente balanceada possui como raiz A[mid], tem como sub árvore da esquerda a árvore de busca binária globalmente balanceada dos elementos no sub array A[0..mid-1], e como sub árvore da direita a árvore de busca binária globalmente balanceada dos elementos no sub array A[mid+1..n-1]. Escrever um método para construir uma árvore de busca binária globalmente balanceada a partir de um array classificado A. 5

6 Exercício 2 6

7 Exercício 3 Conhecendo-se os percursos pré-fixo e infixo de uma árvore binária só há uma árvore binária que satisfaça estes percursos. Para os percursos pré-fixo e infixo que se seguem construa a árvore binária correspondente. Percurso pré-fixo: a, e, f, h, g, b, c, d Percurso infixo: h, f, e, g, a, c, b, d Solução 7

8 Exercício 3 Conhecendo-se os percursos pré-fixo e infixo de uma árvore binária só há uma árvore binária que satisfaça estes percursos. Para os percursos pré-fixo e infixo que se seguem construa a árvore binária correspondente. Percurso pré-fixo: a, e, f, h, g, b, c, d Percurso infixo: h, f, e, g, a, c, b, d Solução 8

9 Heaps e filas de prioridades

10 Exercício 4 Considere um heap sobre um array A de 13 elementos numerados de 1 até 15 O conteúdo corrente do array nas posições A[1] a A[13] é 17; 27; 22; 29; 31; 42; 86; 43; 56; 71; 34; 67; 53 Este heap suporta um fila de prioridades de mínimo Após a aplicação do método dequeueMin() qual será a posição no array do elemento 53? Solução A[6] 10

11 Exercício 4 Considere um heap sobre um array A de 13 elementos numerados de 1 até 15 O conteúdo corrente do array nas posições A[1] a A[13] é 17; 27; 22; 29; 31; 42; 86; 43; 56; 71; 34; 67; 53 Este heap suporta um fila de prioridades de mínimo Após a aplicação do método dequeueMin() qual será a posição no array do elemento 53? Solução A[6] 11

12 Exercício 5 Considere um heap sobre um array A de 13 elementos numerados de 1 até 15 O conteúdo corrente do array nas posições A[1] a A[13] é 17; 27; 22; 29; 31; 42; 86; 43; 56; 71; 34; 67; 53 Este heap suporta um fila de prioridades de mínimo Após a aplicação do método enqueue(Int(81)) qual será a posição no array do novo elemento? Solução A[7] 12

13 Exercício 5 Considere um heap sobre um array A de 13 elementos numerados de 1 até 15 O conteúdo corrente do array nas posições A[1] a A[13] é 17; 27; 22; 29; 31; 42; 86; 43; 56; 71; 34; 67; 53 Este heap suporta um fila de prioridades de mínimo Após a aplicação do método enqueue(Int(81)) qual será a posição no array do novo elemento? Solução A[7] 13

14 Exercício 6 A figura mostra uma fila de prioridades armazenada em um heap Na árvore binária do heap quantos nós existem na sub-árvore da direita da raiz? Solução 7 14

15 Exercício 6 A figura mostra uma fila de prioridades armazenada em um heap Na árvore binária do heap quantos nós existem na sub-árvore da direita da raiz? Solução 7 15

16 Exercício 7 Um heap representando uma fila de prioridades está armazenado em um array A A raiz do heap está armazenada em A[1] Aonde está armazenada a filha esquerda da folha direita da raiz? Solução A[6] 16

17 Exercício 7 Um heap representando uma fila de prioridades está armazenado em um array A A raiz do heap está armazenada em A[1] Aonde está armazenada a filha esquerda da folha direita da raiz? Solução A[6] 17

18 Exercício 8 Considere a fila de prioridade armazenada em um heap (min), como indicado. Caso seja inserido na fila 31 em qual posição do heap vai ficar? 18

19 Exercício 8 Solução A inclusão é feita no nó 11, filho mais novo do nó 5 (E contendo 63) A chave de 11 é menor do que a de seu pai (nó 5) e o conteúdo troca de lugar, indo 31 para o nó 5 O pai do nó 5 é o nó 2 (B contendo 52) A chave de 5 é menor do que a de seu pai (nó 2) e o conteúdo troca de lugar, indo 31 para o nó 2 O heap está correto e 31 ocupa a posição 2 (B) 19

20 Classificação

21 Exercício 9 Deseja-se classificar objetos armazenados em um vetor com 9 elementos. A classificação deve ser feita por: Seleção Bolha Shell sort Quick sort Pede-se mostrar passo a passo a classificação do vetor supondo: a área classificada se expanda do início do vetor para o seu final na seleção e na inserção a área classificada se expanda do final do vetor para o seu início na bolha no Shell sort os intervalos sejam 4, 2 e 1 (inserção) no Quick sort o ponto de separação seja obtido da média dos valores extremos. 21

22 Exercício 9 22

23 Exercício 9 23

24 Exercício 9 24

25 Exercício 9 25

26 Exercício 10 Deseja-se classificar objetos armazenados em um vetor com 10 elementos. A classificação deve ser feita por: Quick sort Pede-se mostrar passo a passo a classificação do vetor supondo: O pivô ponto de separação seja obtido pela MedianOfThree 26

27 Exercício 10 27


Carregar ppt "Série de Exercícios. Árvores Exercício 1 Suponhamos que temos uma árvore binária com campos esquerda, direita, e de dados. Os campos de dados contêm."

Apresentações semelhantes


Anúncios Google