Heap
Un heap è una struttura dati composta da "nodi" che contengono valori. Un heap tipico ha un nodo radice in cima, che può avere due o più nodi figli direttamente sotto di esso. Ogni nodo può avere due o più nodi figli, il che significa che l'heap diventa più largo con ogni nodo figlio. Quando viene rappresentato visivamente, un heap assomiglia a un albero capovolto e la sua forma generale ricorda un mucchio.
Sebbene ogni nodo di un heap possa avere due o più nodi figli (chiamati anche "figli"), la maggior parte degli heap limita ogni nodo a due figli. Questi tipi di heap sono chiamati anche heap binari e possono essere usati per memorizzare dati ordinati. Per esempio, un "max heap binario" memorizza il valore più alto nel nodo radice. Il secondo e il terzo valore più alto sono memorizzati nei nodi figli della radice. In tutto l'albero, ogni nodo ha un valore maggiore di quello di entrambi i nodi figli. Un "min heap binario" è l'opposto: il nodo radice memorizza il valore più basso e ogni nodo ha un valore inferiore a quello dei suoi figli.
In informatica, gli heap vengono spesso rappresentati con semplici diagrammi. Tuttavia, memorizzare effettivamente i dati in un heap è più complesso. Per creare un heap, i programmatori devono scrivere singoli algoritmi per inserire ed eliminare i dati. I valori inseriti in un heap vengono generalmente memorizzati in un array, a cui può fare riferimento un programma. Poiché i dati in un heap sono già ordinati, questa struttura offre un metodo efficiente per cercare valori specifici.
NOTE: "Heap" è anche un termine di programmazione che può essere usato per descrivere la memoria allocata dinamicamente. Questo blocco di memoria può essere usato dalle applicazioni attive. Poiché la memoria nell'heap viene allocata dinamicamente, può aumentare o diminuire a seconda della quantità di memoria utilizzata.
Metti alla prova le tue conoscenze