Diferența Dintre Stack și Heap

Diferența Dintre Stack și Heap
Diferența Dintre Stack și Heap

Video: Diferența Dintre Stack și Heap

Video: Diferența Dintre Stack și Heap
Video: Care este diferenta intre i+ si +i ? 2024, Mai
Anonim

Stack vs Heap

Stiva este o listă ordonată în care inserarea și ștergerea articolelor de listă se poate face numai într-un capăt numit partea de sus. Din acest motiv, stiva este considerată ca o structură de date Last in First Out (LIFO). Heap este o structură specială de date care se bazează pe copaci și îndeplinește o proprietate specială numită proprietate heap. De asemenea, o grămadă este un copac complet, ceea ce înseamnă că nu există goluri între frunzele arborelui, adică într-un copac complet, fiecare nivel este completat înainte de a adăuga un nou nivel la arbore și nodurile dintr-un nivel dat sunt umplute de la stânga la dreapta.

Ce este Stack?

Așa cum am menționat anterior, stiva este o structură de date în care elementele sunt adăugate și eliminate de la un singur capăt numit partea de sus. Stivele permit doar două operații fundamentale numite push și pop. Operația de împingere adaugă un element nou în partea de sus a stivei. Operația pop elimină un element din partea de sus a stivei. Dacă stiva este deja plină, atunci când se efectuează o operațiune de împingere, aceasta este considerată ca o revărsare a stivei. Dacă se efectuează o operație pop pe o stivă deja goală, aceasta este considerată ca un flux de stivă. Datorită numărului mic de operații care ar putea fi efectuate pe un teanc, acesta este considerat o structură de date restricționată. În plus, în funcție de modul în care sunt definite operațiile push și pop, este clar că elementele care au fost adăugate ultima dată în stivă ies din stivă mai întâi. Prin urmare, stiva este considerată ca o structură de date LIFO.

DifferenceBetween C Stack Heap
DifferenceBetween C Stack Heap

Ce este Heap?

După cum sa menționat mai devreme, heap este un arbore complet care satisface proprietatea heap. Proprietatea Heap afirmă că, dacă y este un nod copil al lui x, atunci valoarea stocată în nodul x ar trebui să fie mai mare sau egală cu valoarea stocată în nodul y (adică valoarea (x) ≥ valoarea (y)). Această proprietate implică faptul că nodul cu cea mai mare valoare ar fi întotdeauna plasat la rădăcină. Un heap construit folosind această proprietate se numește max-heap. Există o altă variantă a proprietății heap care afirmă inversul acestui lucru. (adică valoarea (x) ≤ valoarea (y)). Aceasta implică faptul că nodul cu cea mai mică valoare ar fi întotdeauna plasat la rădăcină, numit astfel min-heap. Există o gamă largă de operații efectuate pe grămezi, cum ar fi găsirea minimă (în min-grămezi) sau maximă (în grămezi maxime), ștergerea minimului (în min-grămezi) sau maxim (în maxim-grămezi),tasta crescătoare (în max-grămezi) sau descrescătoare (în min-grămezi) etc.

Care este diferența dintre Stack și Heap?

Principala diferență între stive și grămezi este că, în timp ce stiva este o structură de date liniară, heap este o structură de date neliniară. Stiva este o listă ordonată care urmează proprietății LIFO, în timp ce heap-ul este un arbore complet care urmează proprietății heap. În plus, stack-ul este o structură de date restricționată care acceptă doar un număr limitat de operații precum push și pop, în timp ce heap acceptă o gamă largă de operații, cum ar fi găsirea și ștergerea minimului sau maximului, creșterea sau micșorarea cheii și combinarea.

Recomandat: