Steks vs kaudze
Steks ir sakārtots saraksts, kurā saraksta vienumus var ievietot un dzēst tikai vienā galā, ko sauc par augšējo. Šī iemesla dēļ kaudze tiek uzskatīta par Last in First out (LIFO) datu struktūru. Kaudze ir īpaša datu struktūra, kuras pamatā ir koki, un tā atbilst īpašam īpašumam, ko sauc par kaudzes īpašumu. Arī kaudze ir pilnīgs koks, kas nozīmē, ka starp koka lapām nav atstarpju, ti, pilnā kokā pirms jauna līmeņa pievienošanas kokam tiek aizpildīti visi līmeņi, un noteiktā līmeņa mezgli tiek aizpildīti no no kreisās uz labo.
Kas ir kaudze?
Kā minēts iepriekš, kaudze ir datu struktūra, kurā elementi tiek pievienoti un noņemti tikai no viena gala, ko sauc par augšējo. Stacki ļauj veikt tikai divas pamatdarbības, ko sauc par push un pop. Stumšanas darbība papildina kaudzes augšdaļu ar jaunu elementu. Pop darbība noņem elementu no kaudzes augšdaļas. Ja kaudze jau ir pilna, tad, kad tiek veikta stumšanas darbība, tā tiek uzskatīta par kaudzes pārpildi. Ja pop darbība tiek veikta jau tukšai kaudzei, tā tiek uzskatīta par kaudzes nepietiekamu plūsmu. Sakarā ar nelielo darbību skaitu, kuras varēja veikt ar skursteni, tā tiek uzskatīta par ierobežotu datu struktūru. Turklāt atkarībā no tā, kā tiek definētas push un pop operācijas, ir skaidrs, ka elementi, kas tika pievienoti pēdējai kaudzei, vispirms iziet no kaudzes. Tāpēc kaudze tiek uzskatīta par LIFO datu struktūru.
Kas ir kaudze?
Kā minēts iepriekš, kaudze ir pilnīgs koks, kas apmierina kaudzes īpašību. Krāvuma rekvizīts norāda, ka, ja y ir x mazais mezgls, tad mezglā x saglabātajai vērtībai jābūt lielākai par vai vienādai ar mezglā y saglabāto vērtību (ti, vērtība (x) ≥ vērtība (y)). Šis īpašums nozīmē, ka mezgls ar vislielāko vērtību vienmēr tiktu ievietots saknē. Kaudzi, kas izveidota, izmantojot šo īpašību, sauc par maksimālo kaudzi. Ir vēl viena kaudzes īpašības variācija, kas norāda pretējo. (ti, vērtība (x) ≤ vērtība (y)). Tas nozīmē, ka mezgls ar mazāko vērtību vienmēr tiktu ievietots saknē, tādējādi saukts par min-kaudzi. Ar kaudzēm tiek veikts plašs darbību klāsts, piemēram, atrast minimālo (min-kaudzēs) vai maksimālo (maksimālajās kaudzēs), dzēst minimālo (min-kaudzēs) vai maksimālo (maksimālajās-kaudzēs),palielināšanas (maksimālās kaudzēs) vai samazināšanas (min-kaudzēs) taustiņš utt.
Kāda ir atšķirība starp kaudzi un kaudzi?
Galvenā atšķirība starp kaudzēm un kaudzēm ir tā, ka, kamēr kaudze ir lineāra datu struktūra, kaudze ir nelineāra datu struktūra. Steks ir sakārtots saraksts, kas seko LIFO īpašumam, bet kaudze ir pilnīgs koks, kas seko kaudzes īpašumam. Turklāt kaudze ir ierobežota datu struktūra, kas atbalsta tikai ierobežotu darbību skaitu kā push un pop, bet kaudze atbalsta plašu darbību klāstu, piemēram, minimuma vai maksimuma atrašanu un dzēšanu, atslēgas palielināšanu vai samazināšanu un apvienošanu.