Srie de Exerccios rvores Exerccio 1 Suponhamos que

  • Slides: 27
Download presentation
Série de Exercícios

Série de Exercícios

Árvores

Árvores

Exercício 1 • Suponhamos que temos uma árvore binária com campos esquerda, direita, e

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 ancestrais de x 3

Exercício 1 • Suponhamos que temos uma árvore binária com campos esquerda, direita, e

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 ancestrais de x 4

Exercício 2 • O percurso infixo em uma árvore de busca binária gera uma

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

Exercício 2 6

Exercício 2 6

Exercício 3 • Conhecendo-se os percursos pré-fixo e infixo de uma árvore binária só

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

Exercício 3 • Conhecendo-se os percursos pré-fixo e infixo de uma árvore binária só

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

Heaps e filas de prioridades

Heaps e filas de prioridades

Exercício 4 • Considere um heap sobre um array A de 13 elementos numerados

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; 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 dequeue. Min() qual será a posição no array do elemento 53? • Solução A[6] 10

Exercício 4 • Considere um heap sobre um array A de 13 elementos numerados

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; 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 dequeue. Min() qual será a posição no array do elemento 53? • Solução A[6] 11

Exercício 5 • Considere um heap sobre um array A de 13 elementos numerados

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; 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

Exercício 5 • Considere um heap sobre um array A de 13 elementos numerados

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; 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

Exercício 6 • A figura mostra uma fila de prioridades armazenada em um heap

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

Exercício 6 • A figura mostra uma fila de prioridades armazenada em um heap

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

Exercício 7 • Um heap representando uma fila de prioridades está armazenado em um

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

Exercício 7 • Um heap representando uma fila de prioridades está armazenado em um

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

Exercício 8 • Considere a fila de prioridade armazenada em um heap (min), como

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

Exercício 8 • Solução • A inclusão é feita no nó 11, filho mais

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

Classificação

Classificação

Exercício 9 • Deseja-se classificar objetos armazenados em um vetor com 9 elementos. A

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 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

Exercício 9 22

Exercício 9 22

Exercício 9 23

Exercício 9 23

Exercício 9 24

Exercício 9 24

Exercício 9 25

Exercício 9 25

Exercício 10 • Deseja-se classificar objetos armazenados em um vetor com 10 elementos. A

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 classificação do vetor supondo: • O pivô ponto de separação seja obtido pela Median. Of. Three 26

Exercício 10 27

Exercício 10 27