• 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.
    bet34/163
    Sana16.01.2024
    Hajmi18,84 Mb.
    #138868
    1   ...   30   31   32   33   34   35   36   37   ...   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 (9-rasm).

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

    Aytilganlarni amalga oshirish uchun quyidagi amallarni bajarish lozim:
    a) qko‘rsatkich ko‘rsatuvchi bo‘sh elementni yaratish: Node *q=new Node;
    b) Yaratilgan element informatsion maydoniga xni kiritish: q->info=x;
    c) qelementni p elementdankeyingi element bilan bog‘lash.
    q->ptr=p->ptr – yaratilgan element ko‘rsatkichigap 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.


    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<<"nechtaelementdankeyinkiritasiz 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 (11-rasm).

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

    Buni ro‘yobga chiqarish uchun quyidagi ishlarni amalga oshirish lozim:
    a) O‘chirilayotgan elementni ko‘rsatuvchiq ko‘rsatkichni kiritish.
    q=p->ptr;
    b) p elementni q elementdan keyingi elementbilan 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‘rsatkichko‘rsatayotganelementni o‘chirish.
    delete(q)
    Natijadaro‘yhatquyidagiko‘rinishgaegabo‘ladi:

    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   ...   30   31   32   33   34   35   36   37   ...   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.