Tnode (int val): pnext(0), value(val) {}
};
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’yxatning tavsiflanishi:
struct Tnode {
T value;
Tnode* pnext;
Tnode* pprev;
Tnode (T val): pnext(0), pprev(0),value(val) {}
};
52. Dinamik ma’lumotlar tuzilmasi: Ro’yxatlar ustida bajariladigan amallar (Adding data, Data change)ни мисоллар ёрдамида тушунтиринг.
Bog’langan ro’yxatlar ustida bajariladigan amallar
Ro’yxatga yangi element qo’shish;
Bog’langan ro’yxat elementlari mantiqiy tasvirlanishda yozuv kabi ifodalanadi.
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;
}
}
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;
}
Do'stlaringiz bilan baham: |