|
Zbekiston respublikasi aloqa, axborotlashtirish va telekommunikatsiya
|
bet | 37/47 | Sana | 15.11.2023 | Hajmi | 490,46 Kb. | | #99136 |
qayta tartibga keltirish
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);
}
p->nxt = table; table = p; exit(0);
}
q = p;
p = p->nxt;
}
search = NULL; exit(0);
Ushbu usulda topilgan element ro„yhatda bitta oldingi element bilan o„rin almashtiriladi. Agarda mazkur elementga ko„p murojaat qilinsa, bittadan oldinga surilib borib natijada ro„yhat boshiga kelib qoladi. Ushbu usulning afzalligi shundaki, tuzilmada ko„p murojaat qilinadigan elementlar ro„yhat boshiga bitta qadam bilan intiladi.
Ushbu usulning qulayligi u nafaqat ro„yhatda, balki tartiblanmagan massivda ham samarali ishlaydi (sababi faqatgina ikkita yonma-yon turgan element o„rin almashtiriladi).
Bu usulda uchta ko„rsatkichdan foydalanamiz (5.3-rasm):
|
| |