|
rasm. Stekning vektorda amalga oshirilishi
rasm
|
bet | 4/5 | Sana | 23.01.2024 | Hajmi | 1,27 Mb. | | #144058 |
Bog'liq Nishonov Ma\'lumotlar tuzilmasi va algoritmlar 1-chi Musrasm. Stekning vektorda amalga oshirilishi
rasm. Stekning bog’langan ro’yxatda amalga oshirilishi
rasm. abstract stek (a), stekni vektorda amalga oshirilishi (b) va stekni bog’langan ro’yxatda amalga oshirilishi(c) uchun amallar ketma – ketligi.
Navbatlar
Navbat bu shunday tuzilmaki, u elementlar qo’shilishi bilan kengayib boradi va elementlarni faqatgina bir tomondan qabul qiladi. Stekdan farqli holda, navbat tuzilmasi har ikkala tomondan ham ochiq hisoblanadi, lekin element kiritish bir tomondan, chiqarish esa ikkinchi tomonidan amalga oshiriladi. Navbat FIFO(first in first out – birinchi kelgan birinchi ketadi) ko’rinishidagi tuzilmadir. Navbatda ham xuddi stekdagi kabi C++ da alohida kutubxona mavjud.
#include
Navbatni dasturda e’lon qilish quyidagicha:
_nav1;"> Queue nav1;
Navbat ustida quyidagi amallar bajariladi:
Clear() - navbatni tozalash.
isEmpty() – navbatni bo’shlikka tekshirish
enqueue(el)—el elementni navbatga joylashtirish
dequeue() —navbatdan birinchi elementni olish
firstEl() — navbatning birinchi elementini uni o’chirmasdan qaytaradi Navbatda bajariladigan enqueue va dequeue amallari 4.7 rasmda keltirilgan.
Steklardan farqli ravishda navbatlarda o’zgarishlar uning oxirida va boshida bo’lishi nazorat qilinishi lozim. Elementlar navbatga oxiridan joylashtiriladi, olish esa boshidan amalga oshiriladi.
rasm. Navbatda bajariluvchi amallar ketma – ketligi
rasm. Navbatni massivda amalga oshirilish dasturi.
rasm. Navbatni bog’langan ro’yxatda amalga oshirilish dasturi
– rasmda navbatda element qo’shish va o’chirish amallari ketma –ketligi 4.7 – rasmdagiga o’xshash ravishda ko’rsatilgan bo’lib, 4.10b da navbatni o’zgarishi massiv ko’rinishida,4.10c da bog’langan ro’yxat ko’rinishida amalga oshirilgan.
4.10 – rasm. Navbat ustida amallar bajarish.
DEK (DEQ - Double Ended Queue)
Dek so‘zi (DEQ - Double Ended Queue) ingliz tilidan olingan bo‘lib 2 ta chetga ega navbat degan ma’noni bildiradi. Dekning o’ziga xos xususiyati shundan iboratki, elementlarni yozish va o’qishni har ikkala chetidan ham amalga oshirish mumkin.
Dekni quyi chegaralari birlashtirilgan ikkita stek ko’rinishda qarash mumkin. Deklar bilan ishlash uchun ham C++ da alohida kutubxona mavjud:
|
| |