640-19 guruh talabasi Qo’ldoshev Ulug’bekning
Ma’lumotlar tuzilmasi va algoritmlar fanidan
LABORATORIYA ISHI -14
Mavzu: Bog’langan ro’yhat. Birgalikda bog’langan ro’yhat bilan ishlash.
Ishdan maqsad. Ushbu laboratoriya ishida talabalar ro‟yhatlar bilan ishlashni hamda ro‟yhatlar bilan ishlovchi funksiyalar bilan ishlashni o‟rganishlari kerak. clear(), swap(), erase() va bosqa funksiyalar bilan ishlashni ko‟rib chiqamiz.
Qo’yilgan masala. Talabalar topshiriq variantiga mos ravishda ro‟hatlar ustida berilgan funksiyalar bilan ishlash ko‟nikmasiga ega bo‟lishlari kerak.
Ish tartibi:
Tajriba ishi nazariy ma‟lumotlarini o„rganish;
Berilgan topshiriqning algoritmini ishlab chiqish;
C++ dasturlash muhitida dasturni yaratish;
Natijalarni tekshirish;
Hisobotni tayyorlash va topshirish.
Ro‟yhatlar bilan ishlashda quyidagi funksiyalardan foydalanishimiz mukin bo‟ladi:
list::erase () – bu ro'yxat konteyneridagi elementlarni o'chirish uchun ishlatiladigan C ++ STL-da o'rnatilgan funktsiya. Ushbu funktsiyadan ko'rsatilgan ro'yxat konteyneridan bitta element yoki bir qator elementlarni olib tashlash uchun foydalanish mumkin.
Tuzulishi: iterator list_name.erase (iterator pozitsiyasi) yoki
iterator list_name.erase (birinchi iterator, oxirgi iterator)
Ushbu funktsiya ro'yxat konteyneridan bitta element yoki bir qator elementlarni o'chirish uchun ishlatilishiga qarab turli xil parametrlarni qabul qilishi mumkin.
pozitsiyasi: Ushbu parametr funktsiya bitta elementni o'chirish uchun ishlatilganda ishlatiladi. Ushbu parametr, ro'yxat konteyneridan o'chirilishi kerak bo'lgan elementga ishora qiluvchi iteratorni anglatadi.
birinchi, oxirgi: Ushbu ikkita parametr ro'yxat elementlarni oraliqdan o'chirish uchun ishlatilganda ishlatiladi. Parametr birinchi navbatda diapazondagi birinchi elementga ishora qiluvchi va oxirgi parametr o'chirish uchun zarur bo'lgan oraliqdagi oxirgi elementga ishora qiluvchi tomonga ishora qiladi. Bu diapazondagi barcha elementlarni, shu jumladan avval iterator ko'rsatgan elementni o'chiradi, lekin oxirgi iterator ko'rsatgan elementni hisobga olmaganda.
Dasturning namunaviy kodi quyidagicha:
#include #include using namespace std; int main()
{
list demoList = {10,20,30,40,50};//ro’yhatni yaratish va qiymat berish cout << “Ro’yhat elementlarini chiqarish; for (auto itr = demoList.begin(); itr != demoList.end(); itr++) { cout << *itr << " ";
}
list::iterator itr = demoList.begin(); //Ro'yxatdagi birinchi elementga ishora
qiluvchi iterator yaratish demoList.erase(itr);//ro’yhatdagi birinchi element o’chirilmoqda // Birinchi element o'chirilgandan so'ng ro'yxat elementlarini chop etish cout << "\nBirinchi element o'chirilgandan keyin ro'yxat:"; for (auto itr = demoList.begin(); itr != demoList.end(); itr++) { cout << *itr << " ";
} return 0;
}
swap() funksiyasi.Ushbu funktsiya bitta ro'yxat tarkibini boshqa bir xil
turdagi va o'lchamdagi ro'yxat bilan almashtirish uchun ishlatiladi. Tuzulishi: listname1.swap(listname2) listname1 – birinchi ro‟yhat. listname2 – ikkinchi ro‟yhat.
swap() funksiyasi birinchi ro‟yhat elementlarini ikkinchi ro‟yhat elementlari
bilan almashtiradi.
Misol uchun:
Kiruvchi qiymatlar: mylist1 = {1, 2, 3, 4} mylist2 = {3, 5, 7, 9} mylist1.swap(mylist2);
Chiquvchi qiymatlar: mylist1 = {3, 5, 7, 9}
mylist2 = {1, 2, 3, 4}
Kiruvchi qiymatlar: mylist1 = {1, 3, 5, 7} mylist2 = {2, 4, 6, 8} mylist1.swap(mylist2);
Chiquvchi qiymatlar: mylist1 = {2, 4, 6, 8}
mylist2 = {1, 3, 5, 7}
#include #include using namespace std;
int main()
{
list mylist1{ 1, 2, 3, 4 }; list mylist2{ 3, 5, 7, 9 }; mylist1.swap(mylist2); cout << "mylist1 = ";
for (auto it = mylist1.begin();
it != mylist1.end(); ++it)
cout << ' ' << *it; cout << endl
<< "mylist2 = ";
for (auto it = mylist2.begin();
it != mylist2.end(); ++it)
cout << ' ' << *it;
return 0;
}
clear() funksiyasi. Ushbu funktsiyasi ro'yxat konteynerining barcha elementlarini olib tashlash uchun ishlatiladi va shu bilan uning qiymati 0 holatiga aylantiradi.
Tuzulishi: listname.clear()
Misol uchun:
Kiruvchi qiymatlar: list{1, 2, 3, 4, 5}; list.clear();
Chiquvchi qiymatlar: list{}
Kiruvchi qiymatlar: list{}; list.clear();
Chiquvchi qiymatlar: list{}
Yuqoridagi natijadan ko‟rinadiki clear() funksiyasi ro‟yhat elementlarini o‟chirib ro‟yhatni tozalaydi.
Xulosa
Men Qo’ldoshev Ulug’bek ushbu xulosa yozishimdan maqsadim.
Bog’langan ro’yhat va Birgalikda bog’langan ro’yhat bilan ishlash haqida umumiy ma’lumotga ega bo’ldim. clear(), swap(), erase(), funksiyalarni nima vazifa bajarishini qayerda foydalanish kerak ekanlgini bildim va foydalandim.
Do'stlaringiz bilan baham: |