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; }
Do'stlaringiz bilan baham: |