Ma’lumotlar turlari va algoritmlari. Ma’lumotlarning abstrakt tuzilamalari. Statik ma’lumotlar tuzilmasi


Tnode (int val): pnext(0), value(val) {}


Download 454.57 Kb.
bet4/4
Sana19.01.2023
Hajmi454.57 Kb.
#1102671
1   2   3   4
Bog'liq
1-lab Sirqilarga AbstraktMT

Tnode (int val): pnext(0), value(val) {}

};

Ikki bog’lamli ro’yxatlar

  • Ikki bog’lamli ro’yxatning har bir elementida ko’rsatkich maydoni ikki qismdan iborat bo’ladi. Birinchisi o’zidan oldingi elementni (teskari), ikkinchisi navbatdagi elementni ko’rsatadi (to’g’ri).
  • Odatda, ikki bog’lamli ro’yxatlarni, elementlari soni bir xil bo’lgan, faqat o’zaro teskari ketma-ketlikda yozilgan ikkita bir bog’lamli ro’yxat sifatida qarash mumkin.

Ikki bog’lamli ro’yxatlar

  • Ikki bog’lamli ro’yxatning tavsiflanishi:
  • struct Tnode {

    T value;

    Tnode* pnext;

    Tnode* pprev;

    Tnode (T val): pnext(0), pprev(0),value(val) {}

    };

Bir bog’lamli ro’yxatlarda amallarni bajarish funksiyalari (C++)

  • Ro'yxatga element qo'shish:
  • void addList (TNode **pphead, int val)

    {

    TNode **pp = pphead, *pnew;

    pnew = new TNode(val);

    pnew->pnext = *pp;

    *pp = pnew;

    }

  • Ro‘yxat elementini o'chirish:
  • void deleteList(TNode *phead) {

    if(phead)

    {

    deleteList(phead->pnext);

    if(phead)

    delete phead;

    }

    }

Bir bog’lamli ro’yxatlarda amallarni bajarish funksiyalari (C++)

  • Ro'yhatda elementni qidirish
  • Tnode* Find(Tnode *phead, int x)

    {

    Tnode *p=phead;

    while(p)

    {

    if (p->value==x) return p;

    else p = p->pnext;

    }

    return 0;

    }

  • Ro'yhat elementlarini ekranga chiqarish
  • void print(Tnode *phead)

    {

    Tnode* p = phead;

    while(p)

    {

    cout <<""<< p->value<<" ";

    p = p->pnext;

    }

    cout << endl; }


Download 454.57 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling