Տարբերություն Stack-ի և Heap-ի միջև

Տարբերություն Stack-ի և Heap-ի միջև
Տարբերություն Stack-ի և Heap-ի միջև

Video: Տարբերություն Stack-ի և Heap-ի միջև

Video: Տարբերություն Stack-ի և Heap-ի միջև
Video: 4G երթուղիչ SIM քարտով + RJ45 / Model CPE 903 / REVIEW + ԹԵՍՏԵՐ 2024, Հուլիսի
Anonim

Stack vs Heap

Stack-ը պատվիրված ցուցակ է, որում ցանկի տարրերի տեղադրումն ու ջնջումը կարող է կատարվել միայն մի ծայրով, որը կոչվում է վերև: Այս պատճառով, stack-ը համարվում է որպես Last in First out (LIFO) տվյալների կառուցվածք: Կույտը տվյալների հատուկ կառուցվածք է, որը հիմնված է ծառերի վրա և այն բավարարում է հատուկ հատկություն, որը կոչվում է կույտային հատկություն: Նաև կույտը ամբողջական ծառ է, ինչը նշանակում է, որ ծառի տերևների միջև բացեր չկան, այսինքն՝ ամբողջական ծառում յուրաքանչյուր մակարդակ լրացվում է մինչև ծառին նոր մակարդակ ավելացնելը, և տվյալ մակարդակի հանգույցները լրացվում են ձախից աջ։

Ի՞նչ է Stack-ը:

Ինչպես նշվեց ավելի վաղ, stack-ը տվյալների կառուցվածք է, որտեղ տարրերը ավելացվում և հեռացվում են միայն մեկ ծայրից, որը կոչվում է վերև:Stacks-ը թույլ է տալիս միայն երկու հիմնարար գործողություններ, որոնք կոչվում են push և pop: Հրում գործողությունը նոր տարր է ավելացնում կույտի վերին մասում: Փոփ գործողությունը հեռացնում է տարրը կույտի վերևից: Եթե կույտը արդեն լցված է, երբ հրում գործողություն է կատարվում, այն համարվում է կույտի արտահոսք: Եթե փոփ գործողությունը կատարվում է արդեն դատարկ կույտի վրա, ապա այն համարվում է կույտի ներհոսք: Շնորհիվ փոքր թվով գործողությունների, որոնք կարող են կատարվել կույտի վրա, այն համարվում է սահմանափակ տվյալների կառուցվածք: Բացի այդ, ըստ այն ձևի, որով սահմանվում են push և pop գործողությունները, պարզ է դառնում, որ տարրերը, որոնք ավելացվել են վերջինը, դուրս են գալիս կույտից առաջինը: Հետևաբար stack-ը համարվում է որպես LIFO տվյալների կառուցվածք:

Պատկեր
Պատկեր

Ի՞նչ է Heap?

Ինչպես նշվեց ավելի վաղ, կույտը ամբողջական ծառ է, որը բավարարում է կույտի հատկությունը:Heap հատկությունը նշում է, որ, եթե y-ը x-ի զավակ հանգույց է, ապա x հանգույցում պահվող արժեքը պետք է լինի ավելի մեծ կամ հավասար y հանգույցում պահվող արժեքին (այսինքն արժեք(x) ≥ արժեք(y)): Այս հատկությունը ենթադրում է, որ ամենամեծ արժեք ունեցող հանգույցը միշտ տեղադրվելու է արմատում: Այս հատկության օգտագործմամբ կառուցված կույտը կոչվում է մաքս-կույտ: Կույտային հատկության մեկ այլ տարբերակ կա, որը ցույց է տալիս դրա հակառակը: (այսինքն արժեք (x) ≤ արժեք (y)): Սա ենթադրում է, որ ամենափոքր արժեք ունեցող հանգույցը միշտ տեղադրվելու է արմատի վրա, այդպիսով կոչվում է min-heap: Գոյություն ունի կույտերի վրա կատարվող գործողությունների լայն շրջանակ, ինչպիսիք են նվազագույնի (մին-կույտով) կամ առավելագույնի (առավելագույն կույտերով), նվազագույնի ջնջումը (մին-կույտերով) կամ առավելագույնը (առավելագույն կույտերով), ավելացումը (առավելագույնը) -heaps) կամ նվազում (min-heaps) բանալի և այլն:

Ո՞րն է տարբերությունը Stack-ի և Heap-ի միջև:

Կույտերի և կույտերի միջև հիմնական տարբերությունն այն է, որ եթե stack-ը տվյալների գծային կառուցվածք է, ապա կույտը ոչ գծային տվյալների կառուցվածք է:Stack-ը պատվիրված ցուցակ է, որը հետևում է LIFO հատկությանը, մինչդեռ կույտը ամբողջական ծառ է, որը հետևում է կույտի հատկությանը: Ավելին, stack-ը տվյալների սահմանափակ կառուցվածք է, որն աջակցում է միայն սահմանափակ թվով գործողություններ՝ որպես push և pop, մինչդեռ կույտը աջակցում է գործողությունների լայն շրջանակ, ինչպիսիք են նվազագույնը կամ առավելագույնը գտնելն ու ջնջելը, բանալին ավելացնելը կամ նվազեցնելը և միաձուլումը:

Խորհուրդ ենք տալիս: