• Bajardi
  • Bajardi: Fayzullayev Abdullo Tekshirdi: Bo’riyev Yusuf Toshkent 2022




    Download 276.97 Kb.
    bet1/2
    Sana13.12.2022
    Hajmi276.97 Kb.
    #34480
      1   2
    Bog'liq
    ad
    Dasturlash tillari, 3-amaliy ish kiber A.Xolmurodov, MAXAMMADJONOV YUSUFBEK ZADACHNIK, титульный лист на регистрационные бланки 3 03 2021 2, aqliy xujum metodining turlari va ulardan samarali foydalanish, Style-guide entry rubric updated, Indira umumiy psixologiya, Farg’ona viloyati Politexnika instituti.pdf, A. Navoiy va Z.M.Bobur

    O’zbekiston Respublikasi Axborot Texnologiyalari va Komunikatsiyalarini Rivojlantirish Vazirligi

    Muhammad Al-Xorazmiy nomidagi Toshkent Axborot Texnologiyalari Universiteti

    Ma’lumotlar tuzilmasi va algoritmlar
    4-amaliy ishi

    Guruh: DBM023-3-guruh


    Bajardi: Fayzullayev Abdullo
    Tekshirdi: Bo’riyev Yusuf

    Toshkent 2022
    DINAMIK MA’LUMOTLAR TUZILMASINI TADQIQ QILISH. CHIZIQLI BOG’LANGAN RO’YHATLAR.

    Ishdan maqsad: Chiziqli, bir bog‘lamli ro‘yhatlar tuzilmasini o‘rganish va uni ustida amal bajarish algoritmlarini tadqiq qilish.

    Statik ma’lumotlar tuzilmasi vaqt o‘tishi bilan o‘z o‘lchamini o‘zgartirmaydi. Biz har doim dastur kodidagi statik ma’lumotlar tuzilmasiga qarab ularning o‘lchamini bilishimiz mumkin. Bunday ma’lumotlarga teskari ravishda dinamik ma’lumotlar tuzilmasi mavjud bo‘lib, bunda dastur bajarilishi davomida dinamik ma’lumotlar tuzilmasi o‘lchamini o‘zgartirishi mumkin. Dinamik ma’lumotlar tuzilmasi – bu qandaydir bir qonuniyatga asoslanib shakllangan, lekin elementlari soni, o‘zaro joylashuvi va o‘zaro aloqasi dastur bajarilishi davomida shu qonuniyat asosida dinamik o‘zgaruvchan bo‘lgan ma’lumotlar tuzilmasidir. Dinamik ma’lumotlar tuzilmasi 3.1-rasmdagidek klassifikatsiyalanadi.


    Dasturlarda dinamik ma’lumotlar tuzilmasidan ko‘pincha chiziqli ro‘yhatlar, steklar, navbatlar va binar daraxtlar ishlatiladi. Bu tuzilmalar bir-biridan elementlarning bog‘lanish usuli va ular ustida bajarilishi mumkin bo‘lgan amallari bilan farqlanadi. Dinamik tuzilmalar massiv va yozuvdan farqli ravishda operativ xotirada ketma-ket sohalarda joylashmaydi. Ixtiyoriy dinamik tuzilma elementi 2 ta maydondan tashkil topadi: tuzilma tashkil etilishiga sabab bo‘layotgan

    informatsion maydon va elementlarning o‘zaro aloqasini ta’minlovchi ko‘rsatkichli maydon. Chiziqli ro‘yhatlarda har bir element o‘zidan keyingisi yoki oldingisi bilan ham bog‘langan bo‘lishi mumkin. Birinchi holatda, ya’ni elementlar o‘zidan keyingi element bilan bog‘langan bo‘lsa, bunday ro‘yhatga bir bog‘lamli ro‘yhat deyiladi. Agar har bir element o‘zidan oldingi va o‘zidan keyingi element bilan bog‘langan bo‘lsa, u holda bunday ro‘yhatlarga 2 bog‘lamli ro‘yhatlar deyiladi. Agar oxirgi element birinchi element ko‘rsatkichi bilan bog‘langan bo‘lsa, bunday ro‘yhatga halqasimon ro‘yhat deyiladi. Ro‘yhatning har bir elementi shu elementni identifikatsiyalash uchun kalitga ega bo‘ladi. Kalit odatda butun son yoki satr ko‘rinishida ma’lumotlar maydonining bir qismi sifatida mavjud bo‘ladi. Ro‘yhatlar ustida quyidagi amallarni bajarish mumkin.

    • ro‘yhatni shakllantirish (birinchi elementini yaratish);

    • ro‘yhat oxiriga yangi element qo‘shish;

    • berilgan kalitga mos elementni o‘qish;

    • ro‘yhatning ko‘rsatilgan joyiga element qo‘shish (berilgan kalitga mos elementdan oldin yoki keyin)

    • berilgan kalitga mos elementni o‘chirish;

    • kalit bo‘yicha ro‘yhat elementlarini tartibga keltirish.

    Ro‘yhatlar bilan ishlashda dasturda boshlang‘ich elementni ko‘rsatuvchi ko‘rsatkich talab etiladi. Chiziqli bir bog‘lamli ro‘yhatlar ustida turli amallar bajarish algoritmlari va dasturlarini ko‘rib chiqamiz.

    #include
    using namespace std;
    class Node{
    public: int number;
    Node* next;
    };
    int main()
    { Node* head = NULL;
    Node* lastPtr = NULL;
    short action = -1;
    while (1)
    { cout<<"1. element qo’shish\n";
    cout<<"2. ro’yhatni ko’rish\n";
    cout<<"3. ro’yhat maksimalini topish\n";
    cout<<"0. chiqish\n\n";
    cout<<"tanlang: ";
    cin>>action;
    if (action == 0) {
    system("CLS");
    break;}
    if (action == 1)
    { system("CLS");
    Node* ptr = new Node;
    int numb = -1;

    cout<<"son kiriting: ";
    cin>>numb;
    ptr->number = numb;
    ptr->next = NULL;
    if (head == 0)
    { head = ptr;
    lastPtr = ptr;
    system("CLS");
    continue;
    }
    lastPtr->next = ptr;
    lastPtr = ptr;
    system("CLS");
    continue;
    }
    if (action == 2){
    Node* ptr = NULL;
    system("CLS");
    if (head == 0)
    { cout<<"\t!!! ro’yhat bo’sh !!!\n\n";
    system("PAUSE");
    system("CLS");
    continue;
    }
    cout<<"* * * * * ro’yhat * * * * *\n\n";
    ptr = head;
    while (1) {
    cout<
    number<<" ";

    if (ptr->next == 0) break;
    ptr = ptr->next;
    }
    cout<<"\n\n";
    system("PAUSE");
    system("CLS");
    continue;
    }
    if (action == 3)
    {
    system("CLS");
    Node* p = head;
    Node* q = new Node;
    Node* last = new Node;
    int max=p->number; q=head;
    while(p){
    if(max
    number){ max=p->number;}

    p=p->next;
    }
    system("CLS");
    cout<<"max="<
    system("pause");
    continue;
    }
    }}

    Download 276.97 Kb.
      1   2




    Download 276.97 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Bajardi: Fayzullayev Abdullo Tekshirdi: Bo’riyev Yusuf Toshkent 2022

    Download 276.97 Kb.