Virna Ja Kuhja Erinevus

Virna Ja Kuhja Erinevus
Virna Ja Kuhja Erinevus
Anonim

Stack vs Heap

Virn on järjestatud loend, milles loendikirjeid saab sisestada ja kustutada ainult ühes otsas, mida nimetatakse ülaosaks. Sel põhjusel peetakse virna andmemahuks Last in First out (LIFO). Hunnik on spetsiaalne puude põhjal põhinev andmestruktuur, mis rahuldab spetsiaalset omadust, mida nimetatakse kuhja omaduseks. Hunnik on ka täielik puu, mis tähendab, et puu lehtede vahel ei ole tühimikke, st terves puus täidetakse kõik tasemed enne puule uue taseme lisamist ja antud taseme sõlmed täidetakse vasakult paremale.

Mis on virna?

Nagu varem mainitud, on pinu andmestruktuur, milles elemendid lisatakse ja eemaldatakse ainult ühest otsast, mida nimetatakse ülaosaks. Virnad võimaldavad ainult kahte põhitoimingut, mida nimetatakse push ja popiks. Lükkamistoiming lisab virna ülaosale uue elemendi. Pop-operatsioon eemaldab virna ülaosast elemendi. Kui virn on juba täis, loetakse tõukamistoimingu sooritamisel seda virna ülevooluks. Kui popoperatsioon viiakse läbi juba tühja korstnaga, loetakse seda virna alavooluks. Kuna korstnas saab teha vähe toiminguid, peetakse seda piiratud andmestruktuuriks. Lisaks sellele on tõukefunktsioonide määratlemise viisi järgi selge, et virna viimasena lisatud elemendid lähevad virnast välja esimesena. Seetõttu loetakse virna LIFO andmestruktuuriks.

DifferenceBetween C Stack Heap
DifferenceBetween C Stack Heap

Mis on hunnik?

Nagu varem mainitud, on hunnik terve puu, mis rahuldab kuhja omadusi. Kuhja omadus ütleb, et kui y on xi alamsõlm, peaks sõlme x salvestatud väärtus olema suurem või võrdne sõlme y salvestatud väärtusega (st väärtus (x) ≥ väärtus (y)). See omadus tähendab, et kõige suurema väärtusega sõlm asetatakse alati juure. Seda omadust kasutades ehitatud kuhja nimetatakse max-hunnikuks. Hunniku omadusel on veel üks variatsioon, mis ütleb selle vastupidise. (st väärtus (x) ≤ väärtus (y)). See tähendab, et kõige väiksema väärtusega sõlm asetataks alati juure, nii et seda nimetatakse minihunnikuks. Hunnikutel tehakse palju erinevaid toiminguid, näiteks miinimumi (min-hunnikutes) või maksimumi (max-hunnikutes) leidmine, miinimumi (min-hunnikutes) või maksimumi (max-hunnikutes) kustutamine,suurendusklahv (max-hunnikutes) või vähenev (min-hunnikutes) jne.

Mis vahe on Stackil ja Heapil?

Peamine erinevus virnade ja kuhjade vahel on see, et kui virn on lineaarne andmestruktuur, siis kuhjaga mittelineaarne andmestruktuur. Virn on järjestatud loend, mis järgib atribuuti LIFO, samas kui hunnik on täielik puu, mis järgib kuhja omadust. Pealegi on virn piiratud andmestruktuur, mis toetab ainult piiratud arvu toiminguid nii tõukena kui popina, hunnik aga laia valikut operatsioone, näiteks miinimumi või maksimumi leidmine ja kustutamine, võtme suurendamine või vähendamine ja ühendamine.

Soovitatav: