Muhammad al xorazmiy nomidagi toshkent axborot texnologiyalari universiteti


void AddAfter (PNode r, PNode NewNode) {



Yüklə 150,65 Kb.
səhifə3/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 r, PNode NewNode) {
NewNode->next = p-next;
p->next = NewNode;
}
Berilgan tugundan oldin yangi tugunni qo’shish. Ro’yxatga tugun qo’shishning bu usuli eng murakkab bo’lib, asosiy muammo oddiy bir yo’nalishi (bir bog’lamli) ro’yxatda oldingi tugun adresini olish uchun ro’yxat boshidan boshlab barcha tugunlarni o’qib chiqish kerak bo’ladi. Bu muammoning yechimini olish uchun tugunni ro’yxat boshidan qo’shish (agar berilgan tugun birinchi bo’lsa), yoki berilgan tugundan keyin qo’shishni amalga oshirish kerak bo’ladi.
void AddBefore(PNode &Head, PNode p, PNode NewNode) {
PNode q = Head;
if (Head == p) {
AddFirst(Head, NewNode); //birinchi tugundan oldin
return; }
while (q && q->next!=p) //p dan keyingi tugunni
q = q->next;
if ( q ) // qidirish, agar bunday tugun topilsa,
AddAfter(q, NewNode); //undan keyin tugunni qo’yish
}
Agarda ro’yxatda berilgan ko’rsatkichli tugun mavjud bo’lmasa, u holda tsikl oxirida ko’rsatkich NULL ga teng bo’lsadi va hech qanday natija bo’lmaydi.
Yana bir qiziqarli usul mavjud, bunda berilgan p tugundan oldin NewNode yangi tugunni qo’yish zarur bo’lganda, yangi tugunni aynan ushbu p tugundan keyin qo’yish mumkin va natijada hosil bo’lgan ro’yxatda ularning o’rni almashtirish kerak bo’ladi.
Ro’yxat oxiridan yangi tugun qo’shish. Bu masalani yechish uchun birinchi o’rinda oxirgi tugunni, ya’ni ko’rsatkich maydoni NULL ga teng bo’lgan tugunni topish kerak va shundan so’ng berilgan tugundan keyin yangi tugun qo’shish protsedurasini qo’llash kerak bo’ladi. Agarda ro’yxat bo’sh bo’lsa, u holda bu masalani alohida yechimini olish kerak bo’ladi.
void AddLast(PNode &Head, PNode NewNode) {
PNode q = Head;
if (Head == NULL) { //ro’yxat bo’sh bo’lsa,

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