2010/6/24 Johann Dirichlet <peterdirich...@gmail.com>

> Só me dá um pouco de teoria, ou onde eu posso achar: o que seria um heap?
>
Uma heap é uma árvore na qual cada vértice possui um valor numérico (este
valor numérico pode ser também chamado de chave).
A única propriedade que uma heap precisa respeitar é a seguinte: a chave de
um vértice é maior ou igual a chave de seus filhos (note que maior igual
aqui serve pra qualquer ordem linear na verdade, ou seja, poderia ser menor
ou igual também).

Geralmente as heaps são árvores binárias completas e podem ser expressas
numa sequência numérica (que simplifica a vida pra quem faz programas de
computador com elas). Seja a sequência xi. Para um vértice xi, seus filhos
são x(2*i) e x(2*i+1), o pai de um vértice xi é x(i/2) (arredondado para
baixo).

Como um checkpoint, verifique a propriedade de heap para a seguinte
sequência: {10, 5, 9, 3, 4, 7, 5} (x1 = 10)

Eu tô falando da heap binária completa pq geralmente é isso que se entende
quando se fala de heap.

-- 
[]'s
Lucas

Responder a