Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estrutura de Dados - 2o. per´ıodo de 2010 Gabarito da Segunda Avaliac¸a˜o a` Distaˆncia 1. Valor (2,0): Seja T uma a´rvore bina´ria com 8 no´s, e represente por f(vi) o nu´mero de no´s pertencentes a` suba´rvore de T , com raiz vi. Suponha que v1, v2, . . . , v8 seja uma ordenac¸a˜o dos seus no´s, segundo valores na˜o decrescentes de f(vi). Desenhe uma a´rvore T que atenda a`s condic¸o˜es acima, assinalando, em cada no´, o seu ro´tulo vi correspondente. Resposta: Para a a´rvore T abaixo, temos f(v1) = f(v2) = f(v3) = f(v4) = 1, f(v5) = 2, f(v6) = 3, f(v7) = 5 e f(v8) = 8. v3 v2v1 v4 v5 v6 v7 v8 2. Valor (2,0): Prove ou deˆ contra-exemplo: Uma a´rvore bina´ria pode ser constru´ıda, de forma u´nica, a partir dos seus percursos em po´s-ordem e em n´ıvel. Resposta: A afirmac¸a˜o e´ falsa. Considere duas a´rvores bina´rias T1 e T2, onde cada uma delas conte´m apenas dois no´s A e B de forma que: - em T1, B e´ filho esquerdo de A; - em T2, B e´ filho direito de A. Para ambas as a´rvores acima, o percurso em po´s-ordem e´ BA e o percurso em n´ıvel e´ AB. No entanto, elas sa˜o distintas. 3. Valor (2,0): Determinar a a´rvore bina´ria de custo mı´nimo relativa a`s seguintes fre- queˆncias: f1 = 2, f2 = 0, f3 = 3, f ′ 0 = 1, f ′ 1 = 2, f ′ 2 = 1, f ′ 3 = 4. Explicitar todos os ca´lculos envolvidos, bem como as matrizes obtidas nos ca´lculos. Desenhar a a´rvore o´tima. Resposta: As matrizes do algoritmo de ca´lculo da a´rvore o´tima sa˜o: Matriz dos custos c[i, j]: 0 5 9 22 - 0 3 13 - - 0 8 - - - 0 Matriz dos valores F [i, j]: 1 5 6 13 - 2 3 10 - - 1 8 - - - 4 Matriz dos valores minimizantes k: - 1 1 3 - - 2 3 - - - 3 - - - - Da u´ltima matriz acima, obtemos a seguinte a´rvore o´tima: s2 s1 s3 4. Valor (2,0): Desenhe uma a´rvore B de ordem 2 e altura 3 contendo o maior nu´mero poss´ıvel de chaves. A seguir, efetue a inserc¸a˜o de uma nova chave, de forma a provocar a ocorreˆncia de uma cisa˜o. Desenhe a a´rvore B resultante da inserc¸a˜o. Resposta: 5 10 15 20 1 2 3 4 6 7 8 9 11 12 13 14 16 17 18 19 101 102 103 104 106 107 108 109 111 112 113 114 116 117 118 119 121 122 123 124 21 22 23 24 26 27 28 29 31 32 33 34 36 37 38 39 41 42 43 44 46 47 48 49 30 35 40 45 51 52 53 54 56 57 58 59 61 62 63 64 66 67 68 69 71 72 73 74 55 60 65 70 76 77 78 79 81 82 83 84 86 87 88 89 91 92 93 94 96 97 98 99 80 85 90 95 105 110 115 120 25 50 75 100 Ao inserirmos a chave 125, obtemos a seguinte a´rvore B: 5 10 15 20 1 2 3 4 6 7 8 9 11 12 13 14 16 17 18 19 101 102 103 104 106 107 108 109 111 112 113 114 116 117 118 119 121 122 21 22 23 24 26 27 28 29 31 32 33 34 36 37 38 39 41 42 43 44 46 47 48 49 30 35 40 45 51 52 53 54 56 57 58 59 61 62 63 64 66 67 68 69 71 72 73 74 55 60 65 70 76 77 78 79 81 82 83 84 86 87 88 89 91 92 93 94 96 97 98 99 80 85 90 95 105 110 124 125 120 123 100 115 25 50 75 5. Valor (2,0): Seja a sequeˆncia de chaves 80, 60, 75, 55, 50, 65, 30, 40, 20 Esta sequeˆncia corresponde a uma heap ? Em caso positivo, desenhar a a´rvore bina´ria correspondente. Em seguida, efetuar a inclusa˜o de uma nova chave 63, explicitando os passos efetuados pelo algoritmo de inclusa˜o, atrave´s dos desenhos das a´rvores. Finalmente, efetuar a remoc¸a˜o da chave 80, no heap obtido apo´s a inclusa˜o anterior. De forma similar, explicite os passos efetuados pelo algoritmo de remoc¸a˜o, atrave´s dos desenhos das a´rvores. Resposta: A sequeˆncia de chaves corresponde ao seguinte heap: 3065 75 80 50 60 40 20 55 Inclusa˜o da chave 63: T[10]=63 n=10 3065 75 80 50 60 40 20 55 63 subir(10): trocar(T[10],T[5]) 3065 75 80 63 60 40 20 55 50 trocar(T[5],T[2]) Heap obtido: 3065 75 80 60 63 40 20 55 50 Remoc¸a˜o da chave 80: T[1]=T[10] n=9 3065 75 50 60 63 40 20 55 descer(1,9): trocar(T[1],T[3]) 3065 50 75 60 63 40 20 55 trocar(T[3],T[6]) Heap obtido: 3050 65 75 60 63 40 20 55
Compartilhar