Mavzu: Stek va navbatlarni mantiqiy ifodalash


Download 60.95 Kb.
Sana23.12.2022
Hajmi60.95 Kb.
#1046703
Bog'liq
Qiyasov quvat

Mavzu:Stek va navbatlarni mantiqiy ifodalash

Qiyasov Quvat

Stek va navbatlar:

  • Stek, navbat va deklarni bog’langan ro’yhat ko’rinishida ifodalash Oldingi ma’ruzalarda stek, navbat, dek tuzilmalari xaqida to’htalgan edik.Bu tuzilamalar yarimstatik bo’lganligi sababli ularni dasturda statik yoki dinamik ko’rinishda ifodalash mumkin.Statik ko’rinishda ifodalaganda ularni dasturda masalan massiv shaklda ifodalab, yarimstatiklik shartini buzmagan xolda ishlatish mumkin. Ya’ni elementlarga muroyaat navbatda boshidan, elementlarni kiritih esa oxiridan amalga oshiriladi va o’rtadan muroyaat mumkin emas. Ana shu shartni qanoatlantirgan xoda istalgan ko’rinishda ifodalash mumkin. Demak, yarimstatik tuzilmalarni dinamik ko’rinishda xam ifodalash mumkin, faqat elementlarni kiritish va chiqarishda ularning xususiyatlarini saqlab qolishga axamiyat berish kerak. Navbatni chiziqli bir bog’lamli ro’yhat ko’rinishida tasvirlash stekni chiziqli bir bog’lamli ro’yhat ko’rinishida tasvirlash

Ushbu ko’rinishda stek tuzilmasini tashkil etish va ustida amal bayarish algoritmini ko’rib chiqamiz

  • Yangi element yaratish
  • Uninginfomaydonigama’lumotkiritish
  • Agar ro’yhat bo’sh bo’lsa, ro’yhat boshi ko’rsatkichini ushbu elementga to’g’irlaymiz va yangi element ptr maydoniga NULL yozamiz, ya’niif(Lst==NULL){ p->ptr=NULL; Lst=p}
  • Lst

Aks xolda, ya’ni ro’yhat bo’sh bo’lmasa, yangi yaratilayotgan elementptr maydoniga ro’yhatning 1-element adresini yozamiz

Aks xolda, ya’ni ro’yhat bo’sh bo’lmasa, yangi yaratilayotgan elementptr maydoniga ro’yhatning 1-element adresini yozamiz

p->ptr=Lst; 5. Ro’yhat boshi ko’rsatkichini yangi elementga to’girlaymiz. Lst=p; Stekka yangi element kiritish dastur kodini keltiramiz. class Node{ public: int info; Node* ptr; }; int main() { Node* Lst = NULL; Node* p = new Node; int numb; cout<<"son kiriting: "; cin>>numb; p->info = numb; p->ptr = Lst; Lst = p; Stekdan element chiqarish amali xam huddi shu tomondan amalga oshiriladi. Dastur kodini keltiramiz. Node* p = new Node; if (Lst == NULL) cout<<"ro'yhat bo'sh"; else { p = lst; lst = p->next ; delete(p); }

Massiv tasodifiy kirish ma'lumotlar strukturasi bo'lib, har bir elementga to'g'ridan-to'g'ri va doimiy vaqt ichida kirish mumkin. Tasodifiy kirishning odatiy illyustratsiyasi kitobdir - kitobning har bir sahifasi boshqalardan mustaqil ravishda ochilishi mumkin. Tasodifiy kirish ko'plab algoritmlar uchun juda muhim, masalan, ikkilik qidiruv. Bog'langan ro'yxat - bu har bir elementga faqat ma'lum tartibda kirish mumkin bo'lgan ketma- ket kirish ma'lumotlar tuzilmasi. Ketma-ket kirishning odatiy tasviri qog'oz rulosi yoki lentadir - kerakli ma'lumotlarni olish uchun barcha oldingi materiallarni ochish kerak. Ushbu eslatmada biz cheklangan kirish ma'lumotlar tuzilmalari deb ataladigan ketma-ket ma'lumotlar tuzilmalarining kichik qismini ko'rib chiqamiz .

Staklar

Staklar

Stack - bu oxirgi kiruvchi birinchi chiqadi (LIFO) tamoyiliga muvofiq kiritilgan va olib tashlangan ob'ektlar konteyneridir. Pastga tushirish steklarida faqat ikkita operatsiyaga ruxsat beriladi: elementni stekga surish va elementni stekdan chiqarib tashlash. Stack - bu cheklangan kirish ma'lumotlar tuzilmasi - elementlarni stekga faqat yuqori qismida qo'shish va olib tashlash mumkin. push elementni stekning yuqori qismiga qo'shadi, pop esa elementni yuqoridan olib tashlaydi. Foydali o'xshatish - kitoblar to'plamini o'ylash; siz faqat yuqori kitobni olib tashlashingiz mumkin, shuningdek, yuqoriga yangi kitob qo'shishingiz mumkin.

Stek - bu rekursiv ma'lumotlar strukturasi. Bu erda Stackning tizimli ta'rifi:

stek yo bo'sh yoki u tepadan, qolgan qismi esa stekdan iborat;

Ilovalar

Ilovalar

Stackning eng oddiy qo'llanilishi so'zni teskari aylantirishdir. Siz berilgan so‘zni harfma-harf stakka surasiz, so‘ngra stekdan harflarni chiqarasiz.

Yana bir ilova - matn muharrirlarida "bekor qilish" mexanizmi; bu operatsiya barcha matn o'zgarishlarini stekda saqlash orqali amalga oshiriladi.

Orqaga qaytish . Bu bir qator elementlardagi eng so'nggi ma'lumotlar elementiga kirishingiz kerak bo'lgan jarayon. Labirint yoki labirint haqida o'ylab ko'ring - kirishdan chiqishga qanday yo'l topish mumkin?O'lik nuqtaga yetganingizdan so'ng, orqaga qaytishingiz kerak. Ammo qayerga qaytish? oldingi tanlov nuqtasiga. Shuning uchun, har bir tanlov nuqtasida siz barcha mumkin bo'lgan variantlarni stekda saqlaysiz. Keyin orqaga qaytish shunchaki stekdan keyingi tanlovni olib tashlashni anglatadi.

Tilni qayta ishlash:

parametrlar va mahalliy o'zgaruvchilar uchun bo'sh joy stek yordamida ichki yaratiladi.

mos keladigan qavslar uchun kompilyatorning sintaksisini tekshirish stek yordamida amalga oshiriladi.

rekursiyani qo'llab-quvvatlash

ETIBORINGIZ UCHUN RAHMAT!!!


Download 60.95 Kb.

Do'stlaringiz bilan baham:




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