Differenza tra Stack e Heap

Anonim

Stack vs Heap

Stack è un elenco ordinato in cui l'inserimento e la cancellazione di elementi di elenco possono essere eseguiti solo in un'estremità chiamata superiore. A causa di questo motivo, lo stack è considerato come una struttura dati Last in First out (LIFO). Heap è una speciale struttura di dati che si basa su alberi e soddisfa una proprietà speciale chiamata proprietà heap. Inoltre, un mucchio è un albero completo, il che significa che non ci sono spazi tra le foglie dell'albero i. e. in un albero completo ogni livello viene compilato prima di aggiungere un nuovo livello all'albero e i nodi in un dato livello vengono riempiti da sinistra a destra.

Che cosa è Stack?

Come accennato in precedenza, lo stack è una struttura di dati in cui gli elementi vengono aggiunti e rimossi da una sola estremità chiamata la parte superiore. Le pile consentono solo due operazioni fondamentali denominate push e pop. L'operazione di spinta aggiunge un nuovo elemento alla parte superiore dello stack. L'operazione pop rimuove un elemento dalla parte superiore dello stack. Se la pila è già piena, quando viene eseguita un'operazione di spinta, viene considerata come un overflow di pile. Se un'operazione pop viene eseguita su una pila già vuota, viene considerata come un sottoprocesso di pile. A causa del piccolo numero di operazioni che potrebbero essere eseguite su una pila, viene considerata una struttura dati limitata. Inoltre, secondo il modo in cui le operazioni push e pop sono definite, è chiaro che gli elementi che sono stati aggiunti per ultimo nello stack vanno fuori dalla pila prima. Pertanto lo stack è considerato come una struttura di dati LIFO.

Che cosa è Heap?

Come accennato in precedenza, il mucchio è un albero completo che soddisfa la proprietà del mucchio. La proprietà Heap indica che se y è un nodo figlio di x allora il valore memorizzato nel nodo x deve essere maggiore o uguale al valore memorizzato nel nodo y (valore (x) ≥ valore (y)). Questa proprietà implica che il nodo con il valore più grande sia sempre collocato alla radice. Un mucchio costruito utilizzando questa proprietà viene chiamato max-heap. C'è un'altra variante della proprietà del mucchio che indica il contrario di questo. (vale a dire il valore (x) ≤ valore (y)). Ciò implica che il nodo con il valore più piccolo sia sempre collocato alla radice, detta cosiddetta min-heap. Esiste un'ampia gamma di operazioni eseguite su colonne come la ricerca di minimi (in min-heaps) o massimo (in max-heaps), eliminando il minimo (in min-heaps) o il massimo (in max-heaps), aumentando (in max -heaps) o diminuendo (in min-heaps) il tasto, ecc

Qual è la differenza tra Stack e Heap?

La principale differenza tra stack e colli è che mentre lo stack è una struttura di dati lineari, il mucchio è una struttura dati non lineare. Stack è un elenco ordinato che segue la proprietà LIFO, mentre il mucchio è un albero completo che segue la proprietà del mucchio.Inoltre, lo stack è una struttura dati limitata che supporta solo un numero limitato di operazioni come push e pop, mentre heap supporta un'ampia gamma di operazioni come la ricerca e la cancellazione del minimo o del massimo, aumentando o diminuendo la chiave e la fusione.