Heap (gb.data)

Essa classe implementa uma estrutura de dados heap dinâmico. Pode ser um MinHeap ou um MaxHeap, dependendo de que modo você especifica a construção.

Ser "dinâmica" significa que esta classe permite que você atualize os dados ou a posição dos elementos que já estão no heap.

Esta classe é criável.

Propriedades
Count   Retorna o número de elementos na Heap.
First   Retorna ou define o primeiro elemento do Heap.
IsEmpty   Retorna se o Heap está vazio.

Métodos
Insert   Insere um elemento no Heap.
Remove   Remove o primeiro elemento.
Update   Encontra todas as ocorrências Old e substitui por New. Esta é uma operação O(n). Além disso, a pilha tem que ser reconstruída, se, foi realizada mais de uma substituição.

Objetos no Heap são todas as variantes. A ordenação no heap é definido implicitamente via comparação destes valores. Você pode colocar valores primitivos (boolean, integer, string, etc.) e também objetos. O método especial _compare() é usada para comparar objetos.

Observe que você não pode comparar objetos para primitivas ou objetos de diferentes classes em Gambas (no momento da redação deste texto). Se não manter o seu heap homogêneo no sentido acima definido, ele irá lançar um erro ao tentar pedir em si.

Veja também

Heaps em Wikipedia