p – ishchi ko„rsatkich
q – yordamchi ko„rsatkich, p dan bitta qadam orqada bo„ladi
s – yordamchi ko„rsatkich, p dan ikkita qadam orqada bo„ladi
5.3-rasm. Transpozitsiya usuli bilan ro„yhatni qayta tartibga keltirish
102
Biz tomonimizdan topilgan uchinchi element ro„yhat boshiga bir qadam suriladi (ya‟ni ikkinchi bo„lib qoladi). Birinchi element ko„rsatkichi uchinchi elementga joylashtiriladi, ikkinchi element ko„rsatkichi to„rtinchi, shunday qilib uchinchi element ikkinchi joyga joylashib qoladi. Agar mazkur elementga yana bir bor murojaat qilinsa, u holda u ro„yhat boshida bo„lib qoladi.
node *s=NULL; node *q=NULL; node *p=table; while (p != NULL){
if (key == p->k){ //transponerlaymiz
if( q ==NULL){//o‘rinlashtirish shart emas search=p;
exit(0);
}
q->nxt=p->nxt; p->nxt=q;
if (s == NULL) table = p; else s->nxt = p;
search=p; exit(0);
}
s=q; q=p;
p=p->nxt;
}
search=NULL; exit(0);
103
Talabalar ma‟lumotlaridan – FIO va adresdan iborat jadval berilgan. Binar qidiruvdan foydalanib TTJ da yashaydigan talabalar ro„yhatini hosil qiling.
Algoritm
Jadvalga n ta talaba FIO va adreslarini kiritamiz.
Binar qidiruvni jadvalning birorta maydonida amalga oshirish uchun jadvalni shu maydoni bo„yicha tartiblab olish kerak. Shuning uchun masalaning qo„yilishida adresi TTJ bo„lgan talabalarni topish kerakligi sababli jadval ma‟lumotlarini adres maydoni bo„yicha saralab olamiz. Masalani yechishda to„g„ridan-to„g„ri tanlash orqali saralashdan foydalanilgan.
Do'stlaringiz bilan baham: |