Middle
Ի՞նչ դասակարգումներ կան հորիզոնականների վերաբերյալ տվյալների կառուցվածքների համատեքստում։
sobes.tech AI
Պատասխան AI-ից
Տվյալների կառուցվածքների համատեքստում, տերմինով "հեմ" (Heap) սովորաբար հասկանում է բինար հեմ (Binary Heap), որը ունի հետևյալ դասակարգումները:
-
Տեսակի կարգավորում ըստ:
- Նվազագույն հեմ (Min-Heap): Յուրաքանչյուր հանգույցի արժեքը փոքր է կամ հավասար իր երեխաների արժեքներին: Մարմինը ամենափոքր տարրն է:
- Մեծագույն հեմ (Max-Heap): Յուրաքանչյուր հանգույցի արժեքը մեծ է կամ հավասար իր երեխաների արժեքներին: Մարմինը ամենամեծ տարրն է:
-
Արևելքի լրիվության ըստ:
- Լրիվ բինար հեմ (Complete Binary Heap): Բոլոր մակարդակները, բացի հնարավոր վերջինից, լրիվ են, և վերջին մակարդակի հանգույցները տեղադրված են հնարավորինս ձախ։ Այս հատկությունը կարևոր է, քանի որ թույլ է տալիս արդյունավետ պահել հեմը զանգվածում:
// Օրինակ կառուցվածք հեմի հանգույցի համար (կոնցեպտի ցուցադրության համար) public class HeapNode<T> { public T Value { get; set; } // Հղումներ երեխաների հանգույցներին չեն միշտ բացահայտված զանգվածային ներկայացումում public HeapNode<T> Left { get; set; } public HeapNode<T> Right { get; set; } }
Չնայած գոյություն ունեն այլ տեսակի հեմեր, ինչպիսիք են Fibonacci հեմը (առաջադեմ ալգորիթմների համար) կամ բինոմի հեմը, մեծամասնության դեպքում, "հեմ" տերմինը հղում է հենց լրիվ բինար նվազագույն կամ առավելագույն հեմին, քանի որ դրանք լայն կիրառություն ունեն դասավորության ալգորիթմներում (օրինակ, Heapsort) և առաջնահերթության հերթերում։