Verschil tussen stapel en hoop

Verschil tussen stapel en hoop
Verschil tussen stapel en hoop

Video: Verschil tussen stapel en hoop

Video: Verschil tussen stapel en hoop
Video: Comparing HSPA, HSPA+, and LTE 2024, Juli-
Anonim

Stack vs Heap

Stack is een geordende lijst waarin het invoegen en verwijderen van lijstitems alleen kan worden gedaan aan één uiteinde dat de top wordt genoemd. Om deze reden wordt stack beschouwd als een Last in First out (LIFO) -gegevensstructuur. Heap is een speciale gegevensstructuur die is gebaseerd op bomen en voldoet aan een speciale eigenschap die de eigenschap heap wordt genoemd. Een hoop is ook een complete boom, wat betekent dat er geen openingen zijn tussen de bladeren van de boom, d.w.z. in een complete boom wordt elk niveau ingevuld voordat een nieuw niveau aan de boom wordt toegevoegd en de knooppunten in een bepaald niveau worden gevuld vanaf van links naar rechts.

Wat is stapelen?

Zoals eerder vermeld, is stapel een gegevensstructuur waarin elementen worden toegevoegd en verwijderd van slechts één uiteinde, de bovenkant genaamd. Stacks staan slechts twee fundamentele bewerkingen toe, push en pop genaamd. De push-operatie voegt een nieuw element toe aan de bovenkant van de stapel. De pop-bewerking verwijdert een element van de bovenkant van de stapel. Als de stapel al vol is, wordt dit bij het uitvoeren van een push-bewerking beschouwd als een stapeloverloop. Als een pop-bewerking wordt uitgevoerd op een reeds lege stapel, wordt dit beschouwd als een stapel-underflow. Vanwege het kleine aantal bewerkingen dat op een stapel kan worden uitgevoerd, wordt deze beschouwd als een beperkte gegevensstructuur. Bovendien, volgens de manier waarop de push- en pop-bewerkingen zijn gedefinieerd, is het duidelijk dat elementen die als laatste aan de stapel zijn toegevoegd, als eerste uit de stapel gaan. Daarom wordt stack beschouwd als een LIFO-gegevensstructuur.

Afbeelding
Afbeelding

Wat is Heap?

Zoals eerder vermeld, is heap een complete boom die voldoet aan de heap-eigenschap. Heap-eigenschap stelt dat, als y een onderliggend knooppunt van x is, de waarde die is opgeslagen in knooppunt x groter moet zijn dan of gelijk moet zijn aan de waarde die is opgeslagen in knooppunt y (d.w.z. waarde (x) waarde (y)). Deze eigenschap houdt in dat het knooppunt met de grootste waarde altijd aan de wortel wordt geplaatst. Een heap die met deze eigenschap is geconstrueerd, wordt een max-heap genoemd. Er is nog een variant van de heap-eigenschap die het omgekeerde hiervan aangeeft. (d.w.z. waarde(x) ≤ waarde(y)). Dit houdt in dat het knooppunt met de kleinste waarde altijd aan de wortel wordt geplaatst, dus een min-heap genoemd. Er is een breed scala aan bewerkingen uitgevoerd op heaps, zoals het vinden van minimum (in min-heaps) of maximum (in max-heaps), verwijderen van minimum (in min-heaps) of maximum (in max-heaps), verhogen (in max-heaps) -heaps) of afnemende (in min-heaps) toets, etc.

Wat is het verschil tussen Stack en Heap?

Het belangrijkste verschil tussen stacks en heaps is dat hoewel stack een lineaire datastructuur is, heap een niet-lineaire datastructuur is. Stack is een geordende lijst die volgt op de eigenschap LIFO, terwijl de heap een volledige boom is die volgt op de eigenschap heap. Bovendien is stack een beperkte gegevensstructuur die slechts een beperkt aantal bewerkingen ondersteunt, zoals push en pop, terwijl heap een breed scala aan bewerkingen ondersteunt, zoals het vinden en verwijderen van het minimum of maximum, het verhogen of verlagen van de sleutel en samenvoegen.

Aanbevolen: