• 4. Bir bog‘lamli ro‘yhatdan elementni o‘chirish
  • O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi toshkent axborot texnologiyalari universiteti




    Download 18,84 Mb.
    bet127/163
    Sana16.01.2024
    Hajmi18,84 Mb.
    #138868
    1   ...   123   124   125   126   127   128   129   130   ...   163
    Bog'liq
    O zbekiston respublikasi oliy va o rta maxsus ta lim vazirligi t

    3. Elementni ro‘yhatga qo‘shish


    Berilgan ro‘yhatda p ko‘rsatkich ko‘rsatayotgan elementdan keyin informatsion maydoni x bo‘lgan elementni qo‘yamiz (3.9-rasm).

    3.9-rasm. Ro‘yhatga yangi element qo‘shish


    Aytilganlarni amalga oshirish uchun quyidagi amallarni bajarish lozim:
    a) q ko‘rsatkich ko‘rsatuvchi bo‘sh elementni yaratish: Node *q=new Node;
    b) Yaratilgan element informatsion maydoniga x ni kiritish: q->info=x;
    c) q elementni p elementdan keyingi element bilan bog‘lash.
    q->ptr=p->ptr – yaratilgan element ko‘rsatkichiga p element ko‘rsatkichini o‘zlashtirish.
    d) p element bilan q elementni bog‘lash.
    p->ptr=q – bu amal p elementdan keyingi element q ko‘rsatkich murojaat qilgan element bo‘lishini anglatadi.
    Natijada quyidagi rasmdagidek ko‘rinishga ega bo‘lamiz.

    3.10-rasm. Natijaviy ro‘yhat ko‘rinishi

    Endi shu algoritmni C++ tilidagi realizatsiyasini ko‘rib chiqsak.
    Node * p = lst;
    Node * q = new Node;
    int numb = -1;
    cout<<"son kiriting: ";
    cin>>numb;
    q->number = numb;
    int k;
    cout<<"nechta elementdan keyin kiritasiz k=";cin>>k;
    for(int i=0;inext;
    q->next = p->next;
    p->next = q;

            1. 4. Bir bog‘lamli ro‘yhatdan elementni o‘chirish


    Ro‘yhatda p ko‘rsatkich ko‘rsatayotgan elementdan keyingi elementni o‘chiramiz (3.11-rasm).

    3.11-rasm. Ro‘yhat o‘rtasidan element o‘chirish

    Buni ro‘yobga chiqarish uchun quyidagi ishlarni amalga oshirish lozim:
    a) O‘chirilayotgan elementni ko‘rsatuvchi q ko‘rsatkichni kiritish.
    q=p->ptr;
    b) p elementni q elementdan keyingi element bilan bog‘lash.
    p->ptr=q->ptr;
    c) O‘chirilayotgan element info maydonidagi informatsiyani yodda saqlash (agar zarur bo‘lsa) k=q->info;
    d) q ko‘rsatkich ko‘rsatayotgan elementni o‘chirish.
    delete(q)
    Natijada ro‘yhat quyidagi ko‘rinishga ega bo‘ladi:

    3.12-rasm. Natijaviy ro‘yhat ko‘rinishi


    Shu algoritm dasturi:
    Node* p = lst;
    Node* q = new Node;
    int k;
    cout<<"k=";cin>>k;
    for(int i=0;inext;
    q = p->next;
    p->next = q->next;
    delete(q);

    Download 18,84 Mb.
    1   ...   123   124   125   126   127   128   129   130   ...   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.