Heap (gb.data)
Questa classe implementa una struttura dinamica di dati heap. Può essere un MinHeap o un MaxHeap, a seconda della modalità specificata per la costruzione.
Essere "dinamica" significa che questa classe consente di aggiornare i dati o la posizione degli elementi che sono già nell'heap.
Proprietà
Count
|
Restituisce il numero di elementi nell'heap.
|
First
|
Restituisce o imposta il primo elemento dell'heap.
|
IsEmpty
|
Restituisce se l'heap è vuoto.
|
Metodi
Insert
|
Inserisce un elemento nell'heap.
|
Remove
|
Rimuove e restituisce il primo elemento.
|
Update
|
Trova tutte le occorrenze di Old e le sostituiscile con New. Cerca nell'intero heap quindi è di per sé un'operazione O(n).
|
Gli oggetti nell'heap sono tutti Variant. L'ordinamento nell'heap è implicitamente definito dal confronto di questi valori. Puoi inserire valori primitivi (booleani, interi, stringhe, ecc.) E anche oggetti. Per confrontare gli oggetti viene utilizzato lo speciale metodo _compare().
Nota che (al momento in cui scrivo) in Gambas non puoi confrontare oggetti con dati primitivi o con oggetti di classi diverse. Se non mantieni l'heap omogeneo nel senso definito, genererà un errore nel tentativo di ordinarsi.
Vedi anche
Wikipedia on heaps