Mavzu: Steklar. Rekursiv protseduralar



Download 204,17 Kb.
Sana31.12.2021
Hajmi204,17 Kb.
#257196
Bog'liq
Steklar


Mavzu:Steklar.Rekursiv protseduralar.

Oshxonadagi likopchalar turadigan quti, brovserning orqaga(“nazad”) tugmasi, ixtiyoriy matn muxarriridagi bekor qilish(“CTRL-Z”) amali, bularning barchasi Stek ma’lumotlar strukturasiga misoldir. “LIFO” y’ani oxirgi kegan birinchi ketadi qoidasi asosiga qurilgan bo’lib kompyuter olamida eng ko’p ishlatiladigan ma’lmumotlar strukturasidan biri. Demak, bugun Stek(Stack) ma’lumotlar strukturasini o’rganamiz.

Yuqoridagi rasmda stekning sodda ifodasi berilgan.

Rasmda ko’rinib turganidekstek bu obyektlarning ro’yxati bo’lib, eng oxirgi qo’shilgan obyekt xar doim birinchi bo’lib qaytadi. Masalan, ushbu rasmdagi stekka yangi qiymat qo’shilsa A bitta pastga tushadi, yangi qo’shilgan obyekt “top” o’rinni egallaydi. Keyingi murojaat vaqtida aynan yangi qo’shilgan obyekt qaytariladi.

Ushbu ro’yxatda Stekning tarkibida bo’lgan operatsiyalar berilgan.


  • Push(value)stekka yangi qiymat qo’shadi. Aytib o’tilganidek, yangi qaiymat “top” o’ringa borib tushadi.

  • Pop()eng oxirgi qo’shilgan obyekt qaytariladi va stekdan o’chiriladi.

  • Peek()eng oxirgi qo’shilgan qaytariladi leki stekdan o’chirilmaydi.

  • IsEmpty()stek bo’shmi? degan savolga javobgar metod.

  • Size()stekdagi obyektlar sonini qaytaradi.

Stekning implementasiyasi ikki xil usulda bajarilishi mumkin. Zanjir(Linked) va Massiv. Ularning farqiga to’xtalib o’tamiz, lekin undan oldinIStackinterfacega diqqat qilamiz. Yuqorida berilgan amallarni kelajakda ushbu interfacedan meros olinadigan classlar uchun qoidaga aylantiramiz.

//Stek uchun iterface, T tipidagi obeyektlar bilan ishlaydi.

public interface IStack

{ /// Stack element qo'shish. /// /// Qo''shilishi lozim bo'lgan element.

void Push(T value); 

/// Stackning boshidagi element o'chirib qiymatini qaytaradi. ///

T Pop(); 



/// Stackning boshidagi element qaytaradi, lekin o'chirmaydi.

T Peek();



/// Stack bo'shmi?

bool IsEmpty();

  /// Stackdagi elementlar soni. ///



int Size();

}
Ro’yхаt – bu bеrilgаnlаrning kеtmа-kеt tаshkillаshtirilgаn strukturаsidir.Chiziqli ro’yхаtlаrning mаssivlаrdаn fаrqi shundаki, ulаr dаstur bаjаrilishi jаrаyonidа o’z хаjmini o’zgаrtirish imkоniyatigа egа. Binоbаrin ro’yхаtlаrning хаjmi оldindаn аniqlаnmаydi. Chiziqli ro’yхаtni zаnjir qismlаri ko’rinishidа tаsvirlаsh mumkin:

Ma’lumotlarning chiziqli tuzilmalari ro’yxatlar, cteklar, navbatlar va siklik ro’yxatlar deb ataluvchi turlarga bo’linadi. Ushbu ma’lumot tuzilmalari elementlari zanjir hosil qilib, har bir element ko’rsatkich yordamida o’zidan oldingi yoki o’zidan keyingi elementlarga ko’rsatadi. Ro’yxat boshidagi element head (bosh), oxiridagi element tail (dum) deb ataladi (1-rasm).



1-rasm. Ikki yo’nalishli ro’yxat.
Ro’yxatlar. Bunda to’g’ri to’rtburchaklar bilan ro’yxat elementlari ifodalangan. Elementlar ikki qismdan iborat: yozuv sohasi(ma’lumotlar) va adres sohasi. Adres sohasi keying yoki oldingi elementga murojaat ko’rsatkichini saqlaydi. Ro’yxatning barcha elementlariga murojaat qilish uchun ro’yxat boshi yoki oxirining adresi kifoya qiladi. Ro’yxatlar bir yo’nalishli va ikki yo’nalishli bo’lishi mumkin.

Steklar. “Oxirgi kelgan birinchi ketadi (LIFO -Last In First Out), tamoyili asosida tashkil etilgan ro’yxatlar steklar deb ataladi. Stekda ixtiyoriy lementlarni o’chirish man qilinadi. Bu erda faqat oxirgi elementni o’chirishga ruxsat etiladi. Steklar quyidagi tarzda tashkil etiladi:

Stekning har bir elementi (birinchi elementdan tashqari) o’zidan oldingi elementga murojaatga ega bo’ladi;

– Stekka murojaat uchun oxirgi element adresi qo’llaniladi ( Tail);

– Yangi element stek oxiriga joylashtiriladi;

– Faqat oxirgi element o’chiriladi.



2-rasm. Stek


Navbatlar. “Oldin kelgan – oldin ketadi”. FIFO (First In First Out), tamoyili asosida tashkil etilgan ro’yxatlar navbatlar deb ataladi. Navbatda ixtiyoriy elementlarni o’chirish man etiladi. Faqat birinchi elementni o’chirishga ruxsat etiladi. Navbatning har bir elementi (oxirgi elementdan tashqari) o’zidan keyingi elementga murojaatga ega bo’ladi;

– Stekka murojaat uchun bosh (Head);va oxirgi element adresi qo’llaniladi (Tail);

– Yangi element navbat oxiriga joylashtiriladi;

– Faqat birinchi element o’chiriladi.



3-rasm. Navbat


Ikki yo’nalishli siklik ro’yxatlar. Ro’yxat oxirgi elementi birinchi elementga murojaat qilsa, bunday ro’yxatlar siklik deb ataladi. Siklik ro’yxatlar quidagi tarzda tashkil qilinadi:



  1. Oxirgi element birinchi elementga murojaat etadi;

  2. Po’yxat elemenlariga murojaat etish uchun oxirgi element (Tail) va birinchi element (Head) (shart emas)adresidan;

  3. Yangi element ro’yxat oxiriga joylashtiriladi;

  4. Elementni o’chirish kalit bo’yicha amalga oshiriladi (avval kalit bo’yicha izlash amalga oshiriladi).

  5. Siklik ro’yxatlarga izlash va o’chirish algoritmlarini soddalashtirish imkonini beruvchi “soxta” element kiritish qabul qilingan.



4-rasm. Ikki yo’nalishli siklik ro’yxat
Download 204,17 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish