Különbség Stack és Heap

Anonim

Stack vs Heap

Stack egy rendezett lista, amelyben a listaelemek beszúrása és törlése csak egy végén tetején. Emiatt a verem az utolsó kiszolgáló (LIFO) adatszerkezetnek tekinthető. A heap egy olyan speciális adatszerkezet, amely fákon alapul, és kielégíti a különleges tulajdonságot, amelyet a heap tulajdonságnak neveznek. Emellett egy halom egy teljes fa, ami azt jelenti, hogy nincsenek hiányok a fa levelei között. e. egy teljes fában minden szintet kitöltenek, mielőtt egy új szintet hozzáadnának a fához, és egy adott szinten lévő csomópontokat balról jobbra tölti ki.

Mi az a Stack?

Amint korábban említettük, a stack egy olyan adatszerkezet, amelyben elemeket adunk hozzá és távolítunk el az egyik végtől, amelyet a csúcsnak nevezünk. A halmok csak két alapvető műveletet engedélyeznek, a push és a pop. A push művelet új elemet ad a köteg felső részére. A pop művelet eltávolítja az elemet a verem tetejétől. Ha a köteg már megtelt, amikor egy nyomógomb műveletet hajt végre, akkor a köteg túlcsordulásnak számít. Ha egy pop műveletet egy már üres veremen hajtanak végre, akkor ez egy stack alulfolyásnak számít. A kötegeken elvégezhető kisszámú műveletek miatt korlátozott adatszerkezetnek tekinthető. Ezenkívül a push és pop műveletek definiálásának módja szerint egyértelmű, hogy a verembe beadott elemek először a kötegből indulnak ki. Ezért a verem LIFO adatszerkezetnek tekintendő.

Mi az a Heap?

Amint korábban említettük, a heap egy teljes fa, amely kielégíti a heap tulajdonságait. A Heap tulajdonság azt mondja ki, hogy ha y az x csomópontja, akkor az x csomópontban tárolt értéknek nagyobbnak vagy egyenlőnek kell lennie az y csomópontban (i. Érték (x) ≥ érték (y) tárolt értékkel). Ez a tulajdonság azt jelenti, hogy a legnagyobb értékű csomópont mindig a gyökérbe kerül. Ezt a tulajdonságot létrehozó halom neve max-heap. Van egy másik változata a heap tulajdonságnak, amely ennek fordítottja. (azaz érték (x) ≤ érték (y)). Ez azt jelenti, hogy a legkisebb értékű csomópont mindig a gyökérbe kerül, ez egy min-heap. Számos művelet létezik olyan rétegekben, mint például a minimális tömbökben (max. Tömbökben) vagy maximálisan (maximális tömbökben), minimális tömbökben (max. -heaps) vagy csökkenő (a min-heaps) kulcsban stb.

Mi a különbség a Stack és a Heap között?

A stackek és tömbök közötti fő különbség az, hogy míg a verem egy lineáris adatszerkezet, a heap egy nem lineáris adatstruktúra. A Stack egy rendezett lista, amely követi a LIFO tulajdonságot, míg a halom egy teljes fa, amely a heap tulajdonságait követi.Továbbá a verem egy korlátozott adatszerkezet, amely csak korlátozott számú műveletet támogat push és popként, miközben a heap számos műveletet támogat, például a minimális vagy a maximális törekvést és törlést, a kulcs növelését vagy csökkentését, valamint egyesülését.