Muhammad Al- Xorazmiy nomidagi Toshkent axborot tehnologiyalar Universiteti
Guruhi: SWD-013
Vazifa qo’yilgan fan:
Ma’lumotlatlar tuzilmasi va algoritmlar
Fan oq’ituvchisi; Bo’riyev Y
Bajargan talaba ism familyasi; Amrilloyev S
TOSHKENT-2023
Berilgan topshiriqning savoli quyidagicha:
Navbatda birinchi va oxirgi elementlar o‘rni almashtirilsin
Berilgan savolimizga quyidagicha kod talab etiladi
#include
using namespace std;
void swapFirstAndLast(int arr[], int size) {
if (size < 2) {
return;
}
int temp = arr[0];
arr[0] = arr[size - 1];
arr[size - 1] = temp;
}
int main() {
const int size = 5;
int arr[size] = {1, 2, 3, 4, 5};
cout << "Birinchi holat:\n";
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
cout << endl;
swapFirstAndLast(arr, size);
cout << "O'zgarmagan holatda:\n";
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;}
Dasturimizning ilovada screnshootini korib chiqsak
Berilgan vazifamizni tahlil qilsak
Kodni tahlil qilishimizga ko'ra, swapFirstAndLast funksiyasi massivning birinchi va oxirgi elementlarini o'zgartiradi. main funksiyasida arr nomli massiv yaratiladi, uning barcha elementlari chiqariladi, keyin swapFirstAndLast funksiyasi chaqiriladi va massivning yangi holati chiqariladi.
Nazorat savollariga javoblar
Statik va yarimstatik ma’lumotlar tuzilmasi nima va farqini tushuntiring?
Navbat tuzilmasini tushuntiring.
Yarimstatik ma’lumotlar tuzilmasini dasturda elon qilishning qanday usullarini bilasiz
Stek tuzilmasini tushuntiring va misol keltiring.
Dek nima va navbat tuzilmasidan farqi nimada?
Javoblar
Statik ma'lumotlar dastur boshida yaratiladi va dastur tugagandan so'nggina qadar saqlanadi. Ular dastur ichidagi boshqa funksiyalar tomonidan ham murojaat qilinadi va o'zgarishi mumkin. Yarimstatik ma'lumotlar esa faqatgina o'z funksiya ichida mavjud bo'ladi, va ular funksiya tugagandan so'ng o'chiriladi. Yarimstatik ma'lumotlarga boshqa funksiyalar tomonidan murojaat qilinishi mumkin emas, shuning uchun ular o'zgartirib bo'lmaydi.
Umuman olganda, statik ma'lumotlar dastur yoki dastur ichidagi barcha funksiyalar tomonidan ko'rinadi va o'zgarishi mumkin, yarimstatik ma'lumotlar esa faqatgina o'z funksiya ichida mavjud bo'ladi va o'zgarishi ham faqat shu funksiya ichida amalga oshiriladi.
Navbat tuzilmasi, ma'lumotlarni saqlash va ulardan foydalanish tartibini tasvirlayadi. Bu tuzilma, bir nechta ma'lumotlarni o'z ichiga olgan ma'lumotlar to'plamidir. Navbatda har bir ma'lumotni o'zgartirish, o'qish, yoki yo'qotish imkoniyati mavjud bo'ladi.
Yarimstatik ma'lumotlar tuzilmasini dasturda elon qilish uchun bir nechta usullar mavjud. Bu usullardan ba'zilari quyidagilardir:
Global o'zgaruvchilar: Dastur boshida yarimstatik ma'lumotlarni saqlash uchun global o'zgaruvchilar ishlatish mumkin. Global o'zgaruvchilar, dasturning barcha qismlari tomonidan murojaat qilinishi mumkin va dastur tugaguncha saqlanadi.
3.2 Funksiyalar orqali saqlash: Yarimstatik ma'lumotlarni funksiyalar orqali saqlash ham amaliyotlardan biridir. Bir funksiya ichida ma'lumotlarni saqlayish uchun funksiya ichida o'zgaruvchilar yaratiladi va ular funksiya bajarilganda saqlanadi. Boshqa funksiyalar shu funksiya ichidagi ma'lumotlarga murojaat qila oladi.
3.3 Lokal fayllar: Yarimstatik ma'lumotlarni lokal fayllarda saqlash ham oson usuldir. Faylning joylashgan joyi funksiya ichida belgilanadi va funksiya bajarilishida ma'lumotlar faylga yoziladi. Boshqa funksiyalar esa shu fayldagi ma'lumotlarga murojaat qila oladi.
3.4 Alohida tizimlar: Yarimstatik ma'lumotlarni alohida tizimlarda (masalan, veritabanlarida yoki fayllarda) saqlash ham amalga oshirilishi mumkin. Bu usul ma'lumotlarni saqlash va ulardan foydalanishda kuchli va muddatli saqlash imkonini beradi.
Stek tuzilmasi (stack tuzilmasi), ma'lumotlarni saqlash uchun ishlatiladigan tuzilma boʻlib, ma'lumotlarni oʻz ichiga olish, oʻrnatish va oʻchirish amalga oshirishga imkon beradi. Bu tuzilma odatda "Last-In-First-Out" (LIFO) tartibida ishlaydi, ya'ni oxirgi oʻrnatilgan ma'lumot birinchi oʻrnatilgan ma'lumot sifatida olinadi.
5.Dek tuzilmasi (queue tuzilmasi) va navbat tuzilmasi (stack tuzilmasi) oʻrtasidagi asosiy farq yaratilgan tartibga asoslanganligidir. Navbat tuzilmasida ma'lumotlar "Last-In-First-Out" (LIFO) tartibida saqlanadi, yaʼni oxirgi oʻrnatilgan ma'lumot birinchi oʻrnatilgan ma'lumot sifatida olinadi. Dek tuzilmasida esa ma'lumotlar "First-In-First-Out" (FIFO) tartibida saqlanadi, yaʼni birinchi oʻrnatilgan ma'lumot birinchi oʻrnatilgan ma'lumot sifatida olinadi.
Quyidagi xususiyatlar dek tuzilmasi va navbat tuzilmasi oʻrtasidagi asosiy farqlardan baʼzilaridir:
Tartib: Navbat tuzilmasida ma'lumotlar LIFO tartibida saqlanadi, yani oxirgi oʻrnatilgan ma'lumot birinchi oʻrnatilgan ma'lumot sifatida olinadi. Dek tuzilmasida esa ma'lumotlar FIFO tartibida saqlanadi, yaʼni birinchi oʻrnatilgan ma'lumot birinchi oʻrnatilgan ma'lumot sifatida olinadi.
Amaliyotlar: Navbat tuzilmasida ma'lumotlarni stekka oʻrnatish amaliyati "push" deb ataladi, oʻrnatishdan tashqari, oʻchirish amaliyati ham mavjud emas. Dek tuzilmasida esa ma'lumotlarni stekka oʻrnatish amaliyati "enqueue" deb ataladi, oʻchirish amaliyati esa "dequeue" deb ataladi.
Dostları ilə paylaş: |