5.2-rasm. Ro‘yhatni qayta tartibga keltirish
Topilgan element 5.2-rasmdagidek birdaniga ro‘yhat boshiga joylashtiriladi. Tuzilmadan
har safar birorta element izlab topilsa va u ro‘yhat boshiga olib borib qo‘yilaversa, natijada
oxirgi izlangan elementlar ro‘yhat boshiga joylashib qoladi va biz oxirgi vaqtlarda izlangan
elementlarni tez izlab topish imkoniga ega bo‘lamiz.
Boshida
q ko‘rsatkich bo‘sh,
p esa ro‘yhat boshini ko‘rsatadi;
p ikkinchi elementni
ko‘rsatganda,
q birinchini ko‘rsatadi. Ro‘yhat boshi ko‘rsatkichi (
table) birinchi elementni
ko‘rsatadi. Ro‘yhatda
key kalitli element topilsa, u
p ko‘rsatkich bilan, undan oldingi element
esa
q ko‘rsatkich bilan belgilanadi. Shu topilgan
p elementni ro‘yhat boshiga joylashtiriladi.
Dastur kodi
node *q=NULL;
node *p=table;
while (p !=NULL){
if (key == p->k){
if (q == NULL) { //o‘rinlashtirish shart emas
search = p;
exit(0);
}
q->nxt = p->nxt;
p->nxt = table;
table = p;
exit(0);
}
q = p;
p = p->nxt;
}
search = NULL;
exit(0);