• 3-amaliy mashg’ulot Dinamik turdagi ma’lumotlar tuzilmasi Chiziqli bog’langan ro’yxatlarni e’lon qilish va
  • O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi toshkent axborot texnologiyalari universiteti




    Download 18,84 Mb.
    bet89/163
    Sana16.01.2024
    Hajmi18,84 Mb.
    #138868
    1   ...   85   86   87   88   89   90   91   92   ...   163
    Bog'liq
    O zbekiston respublikasi oliy va o rta maxsus ta lim vazirligi t

    Topshiriqlar.

    1. 10 elementli bir o’lchamli massiv berilgan. Ushbu massiv stek xususiyatiga ega bo’lib, unga 11-element kiritilganda stek to’lib ketganini ma’lum qiluvchi dasturni tuzing.

    2. Stekda 7 ta element mavjud. Mazkur stekni elementlardan bo’shatish dasturini tuzing.

    3. Elementlar kiritilib, navbat shakllantirilsin. Navbatning oxirgi elementga teng barcha elementlarni o’chiruvchi dastur tuzilsin.

    4. Elementlar kiritilib, navbat shakllantirilsin. Navbatning o’lchami 9 ga teng va eng katta elementga teng barcha elementlarini o’chiruvchi dastur tuzilsin.

    5. Dekda 12 ta element mavjud. Elementlarni teskari tartibda joylashtirish dasturni tuzing.

    6. Elementlar kiritilib, Dek shakllantirilsin. 20 ta elementdan iborat Dekni tashkil qiluvchi dasturni tuzing.



    3-amaliy mashg’ulot
    Dinamik turdagi ma’lumotlar tuzilmasi
    Chiziqli bog’langan ro’yxatlarni e’lon qilish va
    ular ustida bajariladigan amallarga doir masalalar yechish

    Dinamik MT dastur bajarilishi mobaynida tuzilma uzunligi va elementlari orasidagi munosabat o’zgaruvchan bo’lgan tuzilmaga aytiladi. Dinamik MT elementlari xotirada ketma -ket yacheykalarga joylashishi shart emas.Xotirada qaerda bo’sh joy mavjud bo’lsa, o’sha erga joylashtiriladi.Elementlarni xotiradan o’qib olishda ularni ketma -ketligini buzmasdan topib olish uchun har bir elementga keyingi elementning xotiradagi adresini yozib qo’yish uchun ko’rsatkichli maydon kiritiladi.Ana shunda har bir elementga qarab keying elementni toppish mumkin bo’ladi.Oxirgi elementning ko’rsatkich maydoniga NULL yoziladi.Bunday tuzilmalarga bog’langan ro’yhatlar deyiladi.Agar har bir elementda bitta ko’rsatkichli maydon mavjud bo’lsa, bunday tuzilmaga bir bog’lamli ro’yhat deyiladi.Xotirada mavjud bo’lgan ro’yhatni topish uchun uning 1-elementi adresini bilish talab etiladi.Bu adresni yozib qo’yish uchun birorta o’zgaruvchi (Lst) e’lon qilamiz.


    Misol. Bir bog’lamli ro’yhar tashkil qiluvchi va ustida turli amal bajaruvchi dastur tuzing.
    #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 elementini o'chirish\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;
    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");
    int d;
    cout<<"o'chiriladigan elementni kiriting";
    cin>>d;
    Node* p = head,*q;
    while(p){
    if(d==p->number){
    if(p==head){
    Node *t=p->next;
    head=t;
    delete(p);break;
    }
    else if(p==lastPtr){
    q->next=NULL;
    delete(p);break;
    }
    else {
    q->next=p->next;
    delete(p);break;
    }
    }
    q=p;
    p=p->next;


    }
    system("CLS");
    cout<<"element o'chirildi";
    system("pause");
    continue;
    }
    }}
    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.



    Download 18,84 Mb.
    1   ...   85   86   87   88   89   90   91   92   ...   163




    Download 18,84 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi toshkent axborot texnologiyalari universiteti

    Download 18,84 Mb.