1.5. Topilgan elementni ro‘yhat boshiga qo‘yish orqali
qayta tartibga keltirish
2-rasm. Ro‘yhatni qayta tartibga keltirish
Topilgan element 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);