Muhammad al xorazmiy nomidagi toshkent axborot texnologiyalari universiteti



Yüklə 150,65 Kb.
səhifə10/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

p = lst;
do {
printf("%d",p->field); //p elementni chiqarish
p = p->next; //keyingi tugunga o’tish
} while (p != lst); //ro’yxatning tugallanish sharti
}
IBHR da ushbu funktsiyani elementlarni teskari tartibda chiqarish uchun ham qo’llash mumkin. Buning uchun funksiya argumenti sifatida ro’yxat boshiga ko’rsatkich olinadi va funktsiya ko’rsatkichi ro’yxatning oxirgi tuguniga suriladi. Ro’yxat oxiridan boshlab, elementlar ketma-ket o’qiladi.
void listprintr(list *lst) {
struct list *p;
p = lst;
do {
p = p->prev; //oldingi tugunga o’tish
printf("%d", p->field); //p elementni chiqarish
} while (p!=lst); // ro’yxatning tugallanish sharti
}
IBXR tugunlari o’rnini almashtirish. Tugunlarni o’zaro o’rnini almashtirish funktsiyasining argumenti sifatida ikkita o’rni almashayotgan tugunlar ko’rsatkichi olinadi, shuningdek, ro’yxat boshi ko’rsatkichi ham qabul qilinadi. Funktsiya ro’yxat boshi adresini qaytaradi. Tugunlar o’rnini almashtirish ko’rsatkichlarni qayta o’rnatish orqali amalga oshiriladi. Buning uchun har bir almashayotgan tugunlarning oldingi va keyingi o’rinlarida joylashgan tugunlarni aniqlab olish kerak. Buning uchun ikkita holat bo’lishi mumkin:
- o’rni almashayotgan tugunlar o’ziro qo’shni bo’lgan hol;
- o’rni almashayotgan tugunlar o’zaro qo’shni bo’lmagan hol, ya’ni ular o’rtasida hech bo’lmaganda bitta tugun mavjud bo’lgan hol.
Qo’shni tugunlar o’rnini almashtirishda ko’rsatkichlarni qayta o’rnatish quyidagicha ko’rinishda bo’ladi 

Ro’yxatda qo’shni tugunlar o’rnini almashtirish


Qo’shni bo’lmagan tugunlarning o’rnini almashtirish quyidagicha bo’ladi 
Ro’yxatda qo’shni bo’lmagan tugunlar o’rnini almashtirish
IBHRda tugunlar o’rnini almashtirish funksiyasi quyidagicha bo’lishi mumkin:
struct list * swap(struct list *lst1, struct list *lst2, struct list *head) { // Ro’yxatning yangi boshi qaytariladi

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