Verskil tussen stapel en hoop

Verskil tussen stapel en hoop
Verskil tussen stapel en hoop

Video: Verskil tussen stapel en hoop

Video: Verskil tussen stapel en hoop
Video: 2.2 - MULTIPLE ACCESS - FDMA/TDMA/CDMA/OFDMA 2024, Julie
Anonim

Stack vs Heap

Stapel is 'n geordende lys waarin die invoeging en uitvee van lysitems slegs aan die een kant gedoen kan word wat die bokant genoem word. As gevolg van hierdie rede word stapel beskou as 'n Last in First out (LIFO) datastruktuur. Hoop is 'n spesiale datastruktuur wat op bome gebaseer is en dit voldoen aan 'n spesiale eienskap wat die hoopeienskap genoem word. 'n Hoop is ook 'n volledige boom, wat beteken dat daar geen gapings tussen die blare van die boom is nie, dit wil sê in 'n volledige boom word elke vlak ingevul voordat 'n nuwe vlak by die boom gevoeg word en die nodusse in 'n gegewe vlak word gevul vanaf links na regs.

Wat is Stack?

Soos vroeër genoem, is stapel 'n datastruktuur waarin elemente bygevoeg en verwyder word vanaf slegs een kant wat die bokant genoem word. Stapels laat slegs twee fundamentele bewerkings toe, genaamd push en pop. Die drukbewerking voeg 'n nuwe element bo-aan die stapel by. Die pop-operasie verwyder 'n element van die bokant van die stapel. As die stapel reeds vol is, word dit as 'n stapeloorloop beskou wanneer 'n stootbewerking uitgevoer word. As 'n pop-bewerking op 'n reeds leë stapel uitgevoer word, word dit as 'n stapelondervloei beskou. As gevolg van die klein aantal bewerkings wat op 'n stapel uitgevoer kan word, word dit as 'n beperkte datastruktuur beskou. Daarbenewens, volgens die manier waarop die druk- en pop-bewerkings gedefinieer word, is dit duidelik dat elemente wat laaste by die stapel gevoeg is, eerste uit die stapel gaan. Daarom word stapel as 'n LIFO-datastruktuur beskou.

Beeld
Beeld

Wat is Heap?

Soos vroeër genoem, is hoop 'n volledige boom wat die hoopeienskap bevredig. Hoop-eienskap stel dat, as y 'n kindknoop van x is, die waarde wat in nodus x gestoor is, groter as of gelyk aan die waarde wat in nodus y gestoor moet wees (d.i. waarde(x) ≥ waarde(y)) moet wees. Hierdie eienskap impliseer dat die nodus met die grootste waarde altyd by die wortel geplaas sal word. 'n Hoop wat met hierdie eienskap gebou is, word 'n maksimum-hoop genoem. Daar is nog 'n variasie van die heap-eienskap wat die omgekeerde hiervan aandui. (m.a.w. waarde(x) ≤ waarde(y)). Dit impliseer dat die nodus met die kleinste waarde altyd by die wortel geplaas sal word, dus 'n min-hoop genoem. Daar is 'n wye reeks bewerkings wat op hope uitgevoer word, soos die vind van minimum (in min-hope) of maksimum (in maksimum-hope), die verwydering van minimum (in min-hope) of maksimum (in maksimum-hope), verhoging (in maksimum-hope) -hope) of afnemende (in min-hope) sleutel, ens.

Wat is die verskil tussen Stack en Heap?

Die belangrikste verskil tussen stapels en hope is dat terwyl stapel 'n lineêre datastruktuur is, is heap 'n nie-lineêre datastruktuur. Stapel is 'n geordende lys wat die LIFO-eienskap volg, terwyl die heap 'n volledige boom is wat die heap-eienskap volg. Verder is stapel 'n beperkte datastruktuur wat slegs 'n beperkte aantal bewerkings soos druk en pop ondersteun, terwyl heap 'n wye reeks bewerkings ondersteun soos om die minimum of maksimum te vind en uit te vee, die sleutel te verhoog of te verminder en saam te voeg.

Aanbeveel: