Olá pessoal, sou o Filipe Névola, este blog foi muito ativo durante 2009 enquanto eu fazia universidade,
hoje em dia estou ativo no Twitter @FilipeNevola e voltando a escrever posts agora no meu perfil do Medium (29/05/2016).

[ 22/07/2009 ] 1

POSCOMP 2005 Q26 - Estrutura de Dados - Heap

Questão 26 Considere um heap H com 24 elementos tendo seu maior elemento na raiz. Em quantos nós de H pode estar o seu segundo menor elemento?

a) 18
b) 15
c) 14
d) 13
e) 12

Gabarito: d (Selecione o texto a esquerda para ver a resposta ou consulte o fim do post).

Explicação: Um Heap é uma estrutura de dados organizada como árvore binária (com algumas diferenças).

Sua inserção é sempre feita no nível mais distante (mais longe da raiz) e sempre da esquerda para a direita. Essa inserção não faz os elementos ficarem desordenados pois a cada inserção são feitas trocas, (mais detalhes e código da inserção e remoção em heap) caso seja necessário, e os elementos maiores (em heaps de máximo) nunca serão filhos de elementos menores.

Sabendo isso a questão se torna trivial. Veja a figura:

Esta é a única forma possível de um Heap com 24 elementos. Agora precisamos saber em quantas posições pode estar o segundo menor elemento deste heap.

Qual a condição para um nó possuir o segundo menor elemento?

Ele deve ser pai de no máximo 1 elemento. Caso ele seja pai de mais de 1 elemento ele já é maior que, no mínimo, 2 elementos! Sendo maior que, no mínimo, 2 elementos ele não poderá ser o segundo menor elemento.

Agora basta contarmos quantos nós são pais de 0 ou 1 nós.

Obteremos 13 nós (os circulados de vermelho na figura acima), que é a resposta correta!

Não concorda? 
Comente, opine e demonstre seu conhecimento!

Gabarito: d
Anônimo comentou:

Boa resposta. Tive que recorrer a 4 livros, para tentar acerta-lá. Mas realmente a sua explicação é mais satisfatoria.
Obrigado

Novo Comentário