O'ZBЕKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI
RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKЕNT AXBOROT TЕXNOLOGIYALARI
UNIVЕRSITЕTI
“Axborot texnologiyalari” kafedrasi
Laboratoriya ishi bo`yicha
HISOBOT
TOSHKENT 2020
2-Labaratoriya ishi
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.
Vazifa
12-variant
Sharti: Boshiga qo‘yish usulidan foydalanib ro‘yhatda qo‘shni elementlari ayrimasi 72 dan kichik bo‘lgan elementni toping. Agar bunday elementlar ko‘p bo‘lsa, u holda ularning eng kattasini toping; agar bunday element mavjud bo‘lmasa – shunga mos ma’lumot chiqaring.
Dastur Codi:
#include "stdafx.h"
#include
#include
using namespace std;
int main(){
int n, t;
vectorvc;
cout<<"Elementlar soni : "; cin>>n;
for(int i=0; i
cout<<"Royxat["<>t;
vc.push_back(t);
}
int searchIndex1, searchIndex2;
int key; bool active = false;
for(int i=0; i
if(vc[i]-vc[i+1] < 72){
if(active){
if(vc[i]-vc[i+1] > key){
key = vc[i]-vc[i+1];
searchIndex1 = i; searchIndex2 = i+1;
}
else continue;
}
else{
active = true; key = vc[i]-vc[i+1];
searchIndex1 = i; searchIndex2 = i+1;
}
}
}
if(active){
int first = vc[searchIndex1];
int last = vc[searchIndex2];
for(int i=searchIndex2; i>1; i--){
vc[i] = vc[i-2];
}
vc[0] = first;
vc[1] = last;
cout<<"-------------- Natija ----------------"<
for(int i=0; i
cout<
}
cout<<"------ Qo'shni elementlar ayirmasi 72 dan kichik bo'lgan ikkita qoshni element "<
cout<<"Avvalgi indexi va qiymati bo'yicha "<
cout<<"Ro'yxat["<
cout<<"Ro'yxat["<
cout<<"Ayirmasi : "<
cout<<"Natija ro'yxat boshiga qo'yildi"<
}
else{
cout<<"Siz kiritgan elementlar orasida qo'shni elementlari ayirmasi 72 dan kichiklari yo'q"<
}
system("pause");
return 0;
}
Natijasi :
Xulosa:
Boshiga qo’yish usuli bilan qidirish tajribada va oxirgi qidirilganlanlarni topishda juda ham effective va samarali usul ekan.
Do'stlaringiz bilan baham: |