{"id":77,"date":"2017-06-22T17:06:26","date_gmt":"2017-06-22T20:06:26","guid":{"rendered":"http:\/\/web.inf.ufpr.br\/didonet2\/?page_id=77"},"modified":"2017-06-22T17:08:59","modified_gmt":"2017-06-22T20:08:59","slug":"exercicios-rbt","status":"publish","type":"page","link":"https:\/\/web.inf.ufpr.br\/didonet\/teaching-disciplinas\/exercicios-rbt\/","title":{"rendered":"Exerc\u00edcios RBT"},"content":{"rendered":"<div id=\"content-core\">\n<div id=\"parent-fieldname-text-9cbcbeb197fd480184a2ef58151be72e\" class=\"\">\n<p class=\"western\"><b>1) <\/b>Crie uma \u00e1rvore bin\u00e1ria para armazenar a seguinte express\u00e3o aritm\u00e9tica: (14 &#8211; (12 -25) * (32-47) % 6 ). A prioridade entre os operadores deve ser respeitada.<\/p>\n<p class=\"western\"><b>2) C<\/b>rie tr\u00eas fun\u00e7\u00f5es de busca em \u00e1rvore bin\u00e1ria de busca que:<\/p>\n<p class=\"western\">a) encontre uma chave K, percorrendo a \u00e1rvore em pr\u00e9-ordem;<\/p>\n<p class=\"western\">b) encontre uma chave K, percorrendo a \u00e1rvore em ordem;<\/p>\n<p class=\"western\">c) encontre uma chave K, percorrendo a \u00e1rvore em p\u00f3s-ordem.<\/p>\n<p class=\"western\">Para cada uma das fun\u00e7\u00f5es, imprimir os n\u00f3s percorridos.<\/p>\n<p class=\"western\"><b>3)<\/b> Escreva o resultado da execu\u00e7\u00e3o da aplica\u00e7\u00e3o das fun\u00e7\u00f5es do exerc\u00edcio (2) para a \u00e1rvore abaixo, seguindo os crit\u00e9rios:<\/p>\n<p class=\"western\">a) chave 30, fun\u00e7\u00e3o (a)<\/p>\n<p class=\"western\">b) chave 35, fun\u00e7\u00e3o (b)<\/p>\n<p class=\"western\">c) chave 25, fun\u00e7\u00e3o (c)<\/p>\n<p class=\"western\">&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 20<br \/>\n&#8211; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/ \u00a0\u00a0 \\<br \/>\n&#8211; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0 10 \u00a0 \u00a0 30<br \/>\n&#8211; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\u00a0 \\<br \/>\n&#8211; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 25 \u00a0\u00a0 35<br \/>\n&#8211; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/ \u00a0\u00a0 \\<br \/>\n&#8211; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 21\u00a0\u00a0 27<\/p>\n<p class=\"western\"><b>4)<\/b> Implemente uma fun\u00e7\u00e3o que some os elementos pares de uma \u00e1rvore bin\u00e1ria de busca.<\/p>\n<p class=\"western\"><b>5)<\/b> Implementar uma fun\u00e7\u00e3o que, dada uma chave K, busque o seu elemento sucessor. Usar m\u00e9todo iterativo.<\/p>\n<p class=\"western\"><b>6)<\/b> Explique a diferen\u00e7a entre o m\u00e9todo de balanceamento de uma \u00e1rvore AVL e uma \u00e1rvore rubro-negra. Existe uma das duas em que o fator de balanceamento \u00e9 menor (\u00e1rvore mais balanceada)?<\/p>\n<p class=\"western\"><b>7) <\/b>Dada a \u00e1rvore abaixo:<\/p>\n<p class=\"western\">a) Descreva o fator de balanceamento de cada n\u00f3.<\/p>\n<p class=\"western\">b) Insira o elemento 8 na raiz, e mostre as \u00e1rvores resultantes ap\u00f3s cada rota\u00e7\u00e3o, at\u00e9 o resultado final.<\/p>\n<p class=\"western\">c) Explique como podemos adaptar de maneira simples o algoritmo de inser\u00e7\u00e3o em \u00e1rvore bin\u00e1ria de busca para suportar inser\u00e7\u00e3o na raiz.<\/p>\n<p class=\"western\">&#8211; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 40<br \/>\n&#8211; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/ \u00a0 \u00a0\u00a0 \\<br \/>\n&#8211; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0 10 \u00a0 \u00a0\u00a0 \u00a0 50<br \/>\n&#8211; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0 \/\u00a0 \\<br \/>\n&#8211; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 09 \u00a0 18<br \/>\n&#8211; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0 \/\u00a0 \u00a0\u00a0 \\<br \/>\n&#8211; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0 15 \u00a0 20<\/p>\n<p class=\"western\"><b>8) <\/b>Como modificar a fun\u00e7\u00e3o de rota\u00e7\u00e3o \u00e0 esquerda abaixo para suportar um ponteiro para o n\u00f3 pai?<\/p>\n<p class=\"western\">&#8211; tNo rotEsq( tNo no ){<\/p>\n<p class=\"western\">&#8211;\u00a0\u00a0\u00a0 tNo aux;<\/p>\n<p class=\"western\">&#8211;\u00a0\u00a0\u00a0 aux = no-&gt;dir;<\/p>\n<p class=\"western\">&#8211;\u00a0\u00a0\u00a0 no-&gt;dir = aux-&gt;esq;<\/p>\n<p class=\"western\">&#8211;\u00a0\u00a0\u00a0 aux-&gt;esq = no;<\/p>\n<p class=\"western\">&#8211;\u00a0\u00a0\u00a0 return aux;<\/p>\n<p class=\"western\">}<\/p>\n<p class=\"western\"><b>9)<\/b> Explique quais s\u00e3o as propriedades de uma \u00e1rvore para ser uma \u00e1rvore 2-3-4.<\/p>\n<p class=\"western\"><b>10) <\/b> O c\u00f3digo abaixo foi projetado para buscar chaves em uma \u00e1rvore 2-3-4. Por\u00e9m, ele cont\u00e9m um problema. Explique qual \u00e9 o problema e como corrigi-lo.<\/p>\n<p class=\"western\">tNo busca (tNo *no, int chave) {<br \/>\n&#8211;\u00a0\u00a0 if( no != NULL ){<br \/>\n&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 for( i=0; i &lt; no.tam; i++)<br \/>\n&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if( no.chave[i] == chave )<br \/>\n&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return no;<br \/>\n&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 else if( chave &lt; no.chave[i] )<br \/>\n&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return busca( no.p [i], chave );<br \/>\n&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return no;<br \/>\n&#8211;\u00a0\u00a0\u00a0 }<br \/>\n}<\/p>\n<p class=\"western\"><b>11) <\/b>Porque usar a t\u00e9cnica de inclus\u00e3o na folha \u00e9 vantajosa em \u00e1rvores 2-3-4?<\/p>\n<p class=\"western\"><b>12)<\/b> Dada a \u00e1rvore 2-3-4, represente uma \u00e1rvore rubro-negra equivalente.<\/p>\n<p class=\"western\">&#8212;&#8212;&#8212;&#8211; \u00a0 25<br \/>\n&#8212;&#8212;&#8211;\u00a0 \/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \\<br \/>\n&#8212;20-22-24 \u00a0\u00a0 26 \u2013 27<\/p>\n<p class=\"western\"><b>13)<\/b> Crie uma \u00e1rvore rubro-negra incluindo os seguintes elementos, nesta ordem: 10, 2, 3, 12, 11. Mostrar as \u00e1rvores resultantes ap\u00f3s cada inser\u00e7\u00e3o.<\/p>\n<p class=\"western\"><b>14) <\/b>A altura m\u00ednima de uma \u00e1rvore \u00e9 o n\u00famero de n\u00f3s pretos a partir da raiz. Implemente um algoritmo que calcule a altura m\u00ednima de uma \u00e1rvore rubro-negra.<\/p>\n<p class=\"western\"><b>15) <\/b>Dada a \u00e1rvore rubro negra abaixo:<\/p>\n<p class=\"western\">a) exclua o 16.<\/p>\n<p class=\"western\">&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 16<br \/>\n&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;b&gt;<br \/>\n&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\u00a0\u00a0\u00a0 \u00a0 \\<br \/>\n&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 12\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 18<br \/>\n&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;b&gt;\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;b&gt;<br \/>\n&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\u00a0\u00a0\u00a0 \u00a0 \u00a0\u00a0 \/\u00a0\u00a0\u00a0\u00a0 \\<br \/>\n&#8211;\u00a0\u00a0\u00a0\u00a0 11 \u00a0\u00a0\u00a0\u00a0 17 \u00a0\u00a0\u00a0\u00a0\u00a0 22<br \/>\n&#8211;\u00a0\u00a0\u00a0 &lt;b&gt; \u00a0\u00a0 &lt;b&gt;\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;r&gt;<br \/>\n&#8211;\u00a0\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0\u00a0 \/\u00a0\u00a0\u00a0 \\<br \/>\n&#8211;\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0 \u00a0\u00a0\u00a0 20 \u00a0\u00a0\u00a0 25<br \/>\n&#8211; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0 \u00a0 &lt;b&gt;\u00a0\u00a0 &lt;b&gt;<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>1) Crie uma \u00e1rvore bin\u00e1ria para armazenar a seguinte express\u00e3o aritm\u00e9tica: (14 &#8211; (12 -25) * (32-47) % 6 ). A prioridade entre os operadores deve ser respeitada. 2) Crie tr\u00eas fun\u00e7\u00f5es de busca em \u00e1rvore bin\u00e1ria de busca que: a) encontre uma chave K, percorrendo a \u00e1rvore em pr\u00e9-ordem; b) encontre uma chave K,&hellip;<\/p>\n","protected":false},"author":21,"featured_media":0,"parent":31,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-77","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/pages\/77","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/comments?post=77"}],"version-history":[{"count":1,"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/pages\/77\/revisions"}],"predecessor-version":[{"id":78,"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/pages\/77\/revisions\/78"}],"up":[{"embeddable":true,"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/pages\/31"}],"wp:attachment":[{"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/media?parent=77"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}