• Halqasimon bir bog’lamli ro’yhatni ekranga chiqarish algoritmi
  • Halqasimon ikki bog’lamli ro’yhatlar
  • Halqasimon ikki bog’lamli ro’yhatga yangi element kiritish algoritmi
  • Halqasimon bir bog’lamli ro’yhat boshidan element o’chirish algoritmi




    Download 18,84 Mb.
    bet39/163
    Sana16.01.2024
    Hajmi18,84 Mb.
    #138868
    1   ...   35   36   37   38   39   40   41   42   ...   163
    Bog'liq
    O zbekiston respublikasi oliy va o rta maxsus ta lim vazirligi t

    Halqasimon bir bog’lamli ro’yhat boshidan element o’chirish algoritmi
    Quyidagi rasmda ro’yhat boshidagi elementni o’chirish amali ko’rsatilgan


    • 1- elementni o’chirish uchun uni ko’rsatuvchi Head ni 2-elementga to’g’irlaymiz

    • ohirgi element, ya’ni Tail ko’rsatayotgan elementni ko’rsatkich maydonini 2-elementga to’g’irlab qo’yamiz

    • 1-elementni hotiradan o’chirib tashlaymiz.

    Ushbu algoritmning dastur kodini keltiramiz.
    void Del(){
    Node *delItem=Head;
    Head=Head->Next;
    Tail->Next=Head;
    delete delItem;}


    Halqasimon bir bog’lamli ro’yhatni ekranga chiqarish algoritmi
    void Show()
    {
    Node *p=Head;
    while (p!=Tail)
    {
    cout<
    data<<" ";

    p=p->Next;
    }
    cout<
    data<
    }
    Halqasimon ikki bog’lamli ro’yhatlar
    Halqasimon ikki bog’lamli ro’yhatda har bir yelement ikkita ko’rsatkichli maydonga ega bo’lib, ular o’zidan oldingi va keyingi elementlarga ko’rsatkich hisoblanadi. Birinchi elementning chap ko’rsatkichi ohirgi elementni, ohirgi elementning o’ng ko’rsatkichi birinchi elementni ko’rsatadi.

    Halqasimon ikki bog’lamli ro’yhatni C++ da e’lon qilinishi:
    struct Node
    {
    int info;
    Node* next;
    Node* prev;
    };
    Node *List=NULL, LastPtr=NULL;
    Halqasimon ikki bog’lamli ro’yhatga yangi element kiritish algoritmi

    1. Yangi elementyaratamiz:

    Node *p= new Node;
    2. Bu element informatsion maydoniga ma’lumot kiritamiz:
    p->data = x ;
    3. Bu elementni quyidagi rasmdagi 2-elementdan keyin qo’shish uchun 2-element, ya’ni ohirgi element adresi kerak bo’ladi.

    Uni List ko’rsatayotgan 1-elementning prev maydonidan olsa bo’ladi.ya’ni
    Node *LastPtr=List->prev; 
    Demak, ohirgi elementning adresi LastPtr da saqlanayapti.

    1. Ohirgi elementning next maydoniga yangi element r ni adresini o’zlashtiramiz:

    LastPtr ->next = p;
    Yangi elementning prev maydoniga yesa shu ohirgi elementning adresini o’zlashtiramiz, ya’ni:
    p ->prev= LastPtr;
    Hozircha ro’yhatimiz quyidagicha ko’rinishga ega bo’ldi:

    Navbatdagi qilinadigan ishimiz ro’yhat boshi va ohirgi elementlarni o’zaro bog’lab qo’yish bo’ladi, ya’ni;
    p->next = List;
    List->prev = p;
    Ushbu amallardan keyin yangi elementimiz ro’yhatga qo’shiladi:

    Algoritm dasturi:
    void AddList(int value){
    Node *p=newNode;
    p->data=value;
    if (List==NULL) {
    p->next=p;
    p->prev=p;
    List =p;
    }
    else{
    Node *LastPtr= List ->prev;
    LastPtr->next=p;
    p->prev=LastPtr;
    p->next= List;
    List ->prev=p;}}

    Download 18,84 Mb.
    1   ...   35   36   37   38   39   40   41   42   ...   163




    Download 18,84 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Halqasimon bir bog’lamli ro’yhat boshidan element o’chirish algoritmi

    Download 18,84 Mb.