Mavzu: Qidiruv usullarini tadqiq qilish Fakultet


-rasm. Transpozitsiya usuli bilan ro‘yhatni qayta tartibga keltirish



Yüklə 15,25 Kb.
səhifə4/4
tarix22.03.2024
ölçüsü15,25 Kb.
#184090
1   2   3   4
Mavzu Qidiruv usullarini tadqiq qilish Fakultet-fayllar.org

5.3-rasm. Transpozitsiya usuli bilan ro‘yhatni qayta tartibga keltirish

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);



Topshiriq



15-variant. Transpozitsiya usulidan foydalanib ro‘yhatda kerakli elementgacha bo‘lgan elementlarning o‘rta arifmetigi 12 ga teng bo‘lgan element topilsin. Agar bunday element mavjud bo‘lmasa – shunga mos ma’lumot chiqaring.

Dastur kodi:


#include
using namespace std;
int main()
{
srand(time(0));
int n;
cout<<" Ro'yxat elementlar sonini kiriting ">n;
int a[n],s=0,b[n],k=0;
for(int i=0;i{
a[i]=rand()%20+80;
cin>>a[i];
}
coutfor(int i=0;i{
for(int j=i;j{
s=s+pow(a[j],2);
}
d=sqrt(s/(n-i));
if(d<10)
cout}
cout<}

http://fayllar.org

Yüklə 15,25 Kb.

Dostları ilə paylaş:
1   2   3   4




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə