Muhammad al xorazmiy nomidagi toshkent axborot texnologiyalari universiteti


void AddAfter (PNode &Head, PNode &Tail, PNode p, PNode NewNode) {



Yüklə 150,65 Kb.
səhifə7/11
tarix24.11.2023
ölçüsü150,65 Kb.
#133580
1   2   3   4   5   6   7   8   9   10   11
ro’yxatlar ustida amallar bajarish. Bog’LANGAN ro’y-fayllar.doc

void AddAfter (PNode &Head, PNode &Tail, PNode p, PNode NewNode) {
if (! p->next)
AddLast (Head, Tail, NewNode);  //ro’yxat oxiridan
else { // qo’shish
NewNode->next = p->next;
NewNode->prev = p;  //yangi tugun ko’rsatkichlarini almashtirish
p->next->prev = NewNode;
p->next = NewNode; //qo’shni tugunlar ko’rsatkichlarini almashtirish
}
}
Berilgan tugundan oldin yangi tugun qo’shish ham aynan shunga o’xshash bajariladi.
Ro’yxatdan tugunni qidirish. Ikki bog’lamli ro’yxatlarda o’tish amalini ikki yo’nalish bo’yicha bajarish mumkin – boshidan oxiriga (bir bog’lamli ro’yxatdagi kabi) yoki oxiridan boshiga.
Tugunni o’chirish. Bu protsedura uchun ham ro’yxat boshi va oxiriga ko’rsatkichlar talab etiladi, chunki ular chegara (boshi va oxirgi) elementlarini o’chirishda o’zgarishi mumkin. Birinchi qadamda qo’shni tugunlarga (agar ular mavjud bo’lsa) ko’rsatkichlar o’rnatiladi. Keyin tugun o’chiriladi va u egallab turgan xotira tozalanadi. Bu yerda o’chirilayotgan tugun ro’yxat boshi yoki oxirgi tugun ekanligi alohida tekshirib ko’riladi.

Ro’yxatda tugunni o’chirish


void Delete (PNode &Head, PNode &Tail, PNode OldNode) {
if (Head == OldNode) {
Head=OldNode->next; //birinchi elementni o’chirish
if (Head)
Head -> prev = NULL;
else Tail = NULL; //yagona elementni o’chirish
}
else {
OldNode -> prev -> next = OldNode -> next;
if (OldNode -> next)
OldNode -> next -> prev = OldNode – prev;
else Tail = NULL; //oxirgi elementni o’chirish
}
delete OldNode;
}
3. Halqasimon ro’yxatlar
Ba’zida ro’yxatlar (bir bog’lamli yoki ikki bog’lamli) halqa shaklida bog’langan bo’ladi, ya’ni oxirgi elementning next ko’rsatkichi birinchi elementga o’rnatilgan bo’ladi. Ikki bog’lamli ro’yxatlarda yuqoridagi bilan birgalikda birinchi elementning prev ko’rsatkichi oxirgi elementga o’rnatilgan bo’ladi. Bunday ro’yxatlarda ko’rsatkichi NULL bo’lgan tugun mavjud emas, ro’yxat boshi ko’rsatkichini qo’llash mumkin bo’ladi, ya’ni ro’yxat boshi ko’rsatkichini ixtiyoriy elementga o’rnatish mumkin.

Yüklə 150,65 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   10   11




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin