O`ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALAR VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI Dasturlash-II Topshiriq-2 Variant №8 Bajardi: 070-19 guruh talabasi Raimjonov Jasur Tekshirdi: Saidov Samandar Toshkent 2024 Mavzu: Konteynerlar. Stack va Navbat Ishning maqsadi: C++ dasturlash tilida stack va navbat hosil qilish va uning dasturini yaratish ko’nikmalarini egallsh. Masalaning qo’yilishi: Navbatda birinchi elementga teng barcha elementlar o‘chirilsin. Masalani yechish g‘oyasi: Shunday qilish uchun, barcha elementlarni o'chirish uchun o'zgaruvchilar qo'llanamiz. vector to'plamini yaratib, boshlang'ich qiymatlarni qo'shamiz. Keyin, erase metodini ishlatib, birinchi elementni o'chiramiz. Natijada, yangi to'plamni chiqaramiz. Stack va navbat haqida Stack va navbat (queue) ikkala dastlabki ma'lumot tuzilmalari. Ularning asosiy farq, qo'shimcha elementlarni qanday qabul qilishlarida. Stack (Stek): Stek, LIFO (Last In, First Out - oxirgi kirgan, birinchi chiqqan) tartibida elementlarni saqlaydi. Bu degani, eng oxirgi element, birinchi chiqib ketadi. Qiziqishlar to'plami, masalan, stek hisoblanadi. Stekning asosiy operatsiyalari quyidagilardir: push: Stekka yangi element qo'shish. pop: Stekdan eng yuqori elementni olib tashlash. top yoki peek: Stekning eng yuqori elementini ko'rish, lekin uni o'chirmasdan. empty: Stek bo'shligini tekshirish. Queue (Navbat): Navbat esa FIFO (First In, First Out - birinchi kirgan, birinchi chiqqan) tartibida elementlarni saqlaydi. Bu degani, eng birinchi element, birinchi chiqib ketadi. Misol uchun, jamoa, banknavbat yoki qator hisoblanadi. Navbatning asosiy operatsiyalari quyidagilardir: push: Navbatga yangi element qo'shish. pop: Navbatdan eng oldingi elementni olib tashlash. front: Navbatning eng oldidagi elementni ko'rish, lekin uni o'chirmasdan. back: Navbatning eng oxiridagi elementni ko'rish, lekin uni o'chirmasdan. empty: Navbat bo'shligini tekshirish. C++ tilida, stek va navbat uchun standart kutubxona (<stack> va <queue>) mavjud. Stack va navbat (queue) ikkala dastlabki ma'lumot tuzilmalari. Ularning asosiy farq, qo'shimcha elementlarni qanday qabul qilishlarida. Stack (Stek): Stek, LIFO (Last In, First Out - oxirgi kirgan, birinchi chiqqan) tartibida elementlarni saqlaydi. Bu degani, eng oxirgi element, birinchi chiqib ketadi. Qiziqishlar to'plami, masalan, stek hisoblanadi. Stekning asosiy operatsiyalari quyidagilardir: push: Stekka yangi element qo'shish. pop: Stekdan eng yuqori elementni olib tashlash. top yoki peek: Stekning eng yuqori elementini ko'rish, lekin uni o'chirmasdan. empty: Stek bo'shligini tekshirish. Queue (Navbat): Navbat esa FIFO (First In, First Out - birinchi kirgan, birinchi chiqqan) tartibida elementlarni saqlaydi. Bu degani, eng birinchi element, birinchi chiqib ketadi. Misol uchun, jamoa, banknavbat yoki qator hisoblanadi. Navbatning asosiy operatsiyalari quyidagilardir: push: Navbatga yangi element qo'shish. pop: Navbatdan eng oldingi elementni olib tashlash. front: Navbatning eng oldidagi elementni ko'rish, lekin uni o'chirmasdan. back: Navbatning eng oxiridagi elementni ko'rish, lekin uni o'chirmasdan. empty: Navbat bo'shligini tekshirish. C++ tilida, stek va navbat uchun standart kutubxona (<stack> va <queue>) mavjud. Dastur kodi: Variant-8 #include <iostream> #include <vector> using namespace std; int main() { // To'plam yaratamiz va unga qiymatlar qo'shamiz vector<int> toplam = {3, 7, 11, 15, 19}; // To'plamni chiqaramiz cout << "Boshlang'ich to'plam: "; for (int i : toplam) { cout << i << " "; } cout << endl; // Birinchi elementni o'chiramiz toplam.erase(toplam.begin()); // Yangi to'plamni chiqaramiz cout << "Yangi to'plam: "; for (int i : toplam) { cout << i << " "; } cout << endl; return 0; } Natijamiz: