• 4. Bir bog„lamli ro„yhatdan elementni o„chirish
  • “Dasturiy injiniring” fakulteti “MA‟lumotlar tuzilmasi va algoritmlar”




    Download 1,33 Mb.
    Pdf ko'rish
    bet26/56
    Sana18.05.2024
    Hajmi1,33 Mb.
    #242340
    1   ...   22   23   24   25   26   27   28   29   ...   56
    Bog'liq
    b2d1fe5c-9484-4aea-a5e7-95281604b19a

    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; 


    55 
    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;
    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: 


    56 
    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 1,33 Mb.
    1   ...   22   23   24   25   26   27   28   29   ...   56




    Download 1,33 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    “Dasturiy injiniring” fakulteti “MA‟lumotlar tuzilmasi va algoritmlar”

    Download 1,33 Mb.
    Pdf ko'rish