AddFirst(Head, NewNode); //return ni birinchi
} //elementga qo’yamiz;
while (q->next) q = q->next; //oxirgi elementni qidiramiz
AddAfter(q, NewNode); } Ro’yxat bo’yicha o’tish. Butun ro’yxatni o’tish uchun uning har bir elementini o’qish uchun, ro’yxat boshidan boshlash kerak va keying tugunga o’tish uchun nextko’rsatkichini qo’llaymiz.
PNode p=Head; while (p!=NULL) { p = p->next; } Ro’yxat tugunini qidirish. Ba’zan ro’yxatning kerakli elementi (adresi yoki ma’lumot) ni qidirib topish talab etiladi. Alohida e’tibor qaratish kerakki, talab qilingan element ro’yxat oxiriga borgunga qadar bo’lishi yoki bo’lmasligi mumkin. Bu yondoshuv quyidagi algoritm bo’yicha amalga oshiriladi:
1) Ro’yxat boshidan boshlash;
2) Joriy element mavjud (ko’rsatkichi NULL emas) bo’lsa, qo’yilgan shartni tekshirish va keyingi elementga o’tish.;
3) Talab qilingan element topilganligi yoki ro’yxat to’liq ko’rib chiqilganligi haqida axborot berish va tugatish.
Misol, quyidagi funktsiya ro’yxatdan mos so’zga (word maydoni berilgan NewWord satrga mos kelishi)ni tekshiradi va uning adresini qaytaradi yoki qidirilgan tugun mavjud bo’lmasa, NULL adresini qaytaradi.
PNode Find (PNode Head, char NewWord[]) { PNode q = Head; while (q && strcmp(q->word, NewWord)) q = q->next; return q; } Ro’yxat tugunini o’chirish. Bu protsedura ham ro’yxat bo’yicha berilgan tugunni qidirish bilan bog’liq, topilgan element uchun undan oldingi elementning ko’rsatkichini almashtirish kerak bo’ladi. Agar qidirilgan tugun topilsa, unga qo’yilgan ko’rsatkichni almashtiramiz (5-rasm).
Shuni alohida e’tiborga olish zarurki, agarda ro’yxatda birinchi bosh tugun o’chirilishi talab qilinsa, u holda ro’yxat boshi ko’rsatkichini alohida saqlab, bosh tugun egallab turgan xotira o’chiriladi. Chunki, bu holda o’chirilayotgan tugun adresi ro’yxat boshi adresi Head bilan ustma-ust tushadi va ro’xyat boshi adresini keyingi elementga o’rnatish kerak.