Un heap (o monte binario) è una struttura dati ad albero specializzata che soddisfa la proprietà dell'heap: se A è un nodo genitore di B, allora la chiave (il valore) del nodo A è ordinata in relazione alla chiave del nodo B con lo stesso ordine applicato a tutti i nodi nell'heap. Questo implica che il nodo con la chiave "migliore" è sempre il nodo radice.
Gli heap sono in genere implementati come alberi binari, anche se in alcuni casi possono essere implementati con alberi n-ari. Esistono due tipi principali di heap binari:
Min Heap: In un min heap, il valore della chiave di ogni nodo è minore o uguale al valore della chiave dei suoi figli. Il nodo radice contiene quindi l'elemento con la chiave minima. Puoi trovare maggiori informazioni sul concetto di Min%20Heap.
Max Heap: In un max heap, il valore della chiave di ogni nodo è maggiore o uguale al valore della chiave dei suoi figli. Il nodo radice contiene quindi l'elemento con la chiave massima. Puoi trovare maggiori informazioni sul concetto di Max%20Heap.
Proprietà Importanti:
Forma: Un heap binario è un albero binario completo. Ciò significa che tutti i livelli sono completamente riempiti, ad eccezione eventualmente dell'ultimo livello, che viene riempito da sinistra a destra. Questa proprietà permette di rappresentare un heap in modo efficiente usando un array. Puoi saperne di più sulla Rappresentazione%20ad%20Array%20di%20un%20Heap.
Complessità Temporale: Le operazioni comuni su un heap (inserimento, eliminazione del massimo/minimo, modifica della chiave) hanno una complessità temporale di O(log n), dove n è il numero di elementi nell'heap. Per approfondire puoi consultare Complessità%20Temporale%20Heap.
Utilizzi Comuni:
Operazioni di Base:
Ne Demek sitesindeki bilgiler kullanıcılar vasıtasıyla veya otomatik oluşturulmuştur. Buradaki bilgilerin doğru olduğu garanti edilmez. Düzeltilmesi gereken bilgi olduğunu düşünüyorsanız bizimle iletişime geçiniz. Her türlü görüş, destek ve önerileriniz için iletisim@nedemek.page