struct Node {
char word[40]; // ma’lumotlar maydoni
int count;
Node *next, *prev; // qo’shni elementga havolalar
};
typedef Node *PNode; // «tugunga ko’rsatgich» turi
Quyida Head ko'rsatkichi ro'yxatning boshiga, Tail ko'rsatkichi esa ro'yxatning oxiriga ishora qiladi:
PNode Head = NULL, Tail = NULL;
Bo'sh ro'yxat uchun ikkala ko'rsatgich ham NULL.
Ikki yoqlama bog'langan ro'yxat
Roʻyxatning boshiga tugun qoʻshish
Ro'yxatning boshiga yangi NewNode qo'shish uchun:
1) NewNode tugunning next havolasini mavjud ro'yxatning boshiga va prev havolasini NULL ga o'rnatish;
2) oldingi birinchi tugunning prev havolasini (agar u mavjud bo'lsa) NewNode ga o'rnatish;
3) ro'yxat boshini yangi tugunga o'rnatish;
4) agar ro'yxatda elementlar bo'lmasa, ro'yxatning oxiri ham yangi tugunga o'rnatiladi.
Quyidagi protsedura ushbu sxema bo'yicha ishlaydi:
void AddFirst(PNode &Head, PNode &Tail, PNode NewNode)
{
NewNode->next = Head; NewNode->prev = NULL;
if ( Head ) Head->prev = NewNode; Head = NewNode;
if ( ! Tail ) Tail = Head; // bu element - birinchi}
Do'stlaringiz bilan baham: |