Skillnaden mellan Stack och Heap

Anonim

Stack vs Heap

Stack är en ordnad lista där infogning och radering av listobjekt kan göras endast i ena änden kallad topp. På grund av den här orsaken betraktas stapeln som en senast in första ut (LIFO) datastruktur. Heap är en speciell datastruktur som bygger på träd och den uppfyller en speciell egenskap som kallas heapegenskapen. En höft är också ett komplett träd, vilket innebär att det inte finns några luckor mellan trädens löv. e. i ett komplett träd fylls varje nivå innan du lägger till en ny nivå i trädet och noderna i en given nivå fylls från vänster till höger.

Vad är stack?

Som tidigare nämnts är stapel en datastruktur där element läggs till och tas bort från en enda ände som kallas toppen. Stackar tillåter bara två grundläggande operationer som kallas push och pop. Tryckoperationen lägger till ett nytt element överst i stapeln. Popoperationen tar bort ett element från toppen av stapeln. Om stacken redan är full, när en push-operation utförs betraktas den som en stapelflöde. Om en popoperation utförs på en redan tom stack betraktas den som en stack underflöde. På grund av det lilla antal operationer som kan utföras på en stapel betraktas det som en begränsad datastruktur. Dessutom är det enligt det sätt som push och pop-operationerna definieras tydligt att element som tillsattes sist i stacken först går ut ur stapeln. Därför betraktas stapel som en LIFO datastruktur.

Vad är Heap?

Som tidigare nämnts är heap ett komplett träd som uppfyller hålfastigheten. Heap-egenskapen anger att om y är en barnnod på x, bör värdet som lagras i nod x vara större än eller lika med värdet lagrat i nod y (i. E. Värde (x) ≥ värde (y)). Denna egenskap innebär att noden med störst värde alltid kommer att placeras i roten. En hög byggd med den här egenskapen kallas en max-heap. Det finns en annan variant av heapegenskapen som anger omvänden av detta. (i. e. värde (x) ≤ värde (y)). Detta innebär att noden med det minsta värdet alltid skulle placeras i roten, så kallade en minhöga. Det finns ett brett spektrum av operationer som utförs på högar som att hitta minimum (i minhögar) eller maximalt (i maxhöjder), radera minimum (i minhöjder) eller maximalt (i maxhögar), ökar (i max -heaps) eller minskar (i min-hål) nyckeln, etc.

Vad är skillnaden mellan Stack and Heap?

Huvudskillnaden mellan staplar och högar är att medan stacken är en linjär datastruktur är heap en icke-linjär datastruktur. Stack är en ordnad lista som följer LIFO-fastigheten, medan högen är ett komplett träd som följer högen.Stack är dessutom en begränsad datastruktur som endast stöder ett begränsat antal operationer som push och pop, medan högen stöder ett brett spektrum av operationer som att hitta och ta bort minsta eller maximala, öka eller minska tangenten och slå samman.