Mustaqil ishi Mavzu: Yarim statik ma’lumotlar tuzilmalari 110-21-guruh Sobirov ogʻabek




Download 80.96 Kb.
Pdf ko'rish
Sana02.08.2023
Hajmi80.96 Kb.
#77872
Bog'liq
Mustaqil ish MTA
result


1.
2.
3.
1.
Mustaqil ishi Mavzu: Yarim statik ma’lumotlar tuzilmalari
110-21-guruh Sobirov ogʻabek
Muhammad Al-Xorazmiy nomidagi Toshkent Axborot Texnoogiyalari Universiteti 
Ma’lumotlar Tuzilmasi va Algoritmlar
Fanidan 
Mustaqil ishi 
Mavzu: Yarim statik ma’lumotlar tuzilmalari 
Bajardi:_____________Sobirov 
Ogʻabek
Qabul qildi:_____________________Boʻriyev Yusufjon
Mavzu: Yarimstatik ma’lumotlar tuzilmasi. 
Reja: 
Yarimstatik ma’lumotlar tuzilmasi 
Yarimstatik ma’lumotlar tuzilmasi turlari 
Yarimstatik ma’lumotlar tuzilmasiga doir misollar 
Yarimstatik ma’lumotlar tuzilmasi 
Yarimstatik ma’lumotlar tuzilmasi o‘zgaruvchan uzunlikka ega va uni o‘zgartiruvchi oddiy 
funksiyalariga ega bo’lgan tuzilmalar tushuniladi. Tuzilmaning uzunligini o‘zgartirish ma’lum bir 
chegarada, ya’ni qandaydir bir maksimal qiymatdan oshmagan holda amalga oshirilishi mumkin;
Agar yarimstatik tuzilmani mantiqiy jihatdan qaraydigan bo‘lsak, u holda chiziqli ro‘yhat 
munosabati bilan bog‘langan ma’lumotlar ketma-ketligi tushuniladi. Xotirada yarimstatik 
ma’lumotlar tuzilmasini fizik jihatdan tasvirlaydigan bo‘lsak, bu xotirada slotlarning oddiy ketma-
ketligidir, ya’ni har bir element xotirada navbatdagi slotlarda joylashadi. Yarimstatik MTni fizik 
tasvirlashning yana bir ko‘rinishi bir tomonlama bog‘langan ro‘yhat (zanjir) ko‘rinishida ifodalash 


2.






mumkin, ya’ni bunda har bir navbatdagi elementning adresi joriy elementda ko‘rsatiladi. Bunday 
tasvirlashda tuzilmaning uzunligiga cheklanish unchalik qattiq qo‘yilmaydi. Bunday tuzilmalarga – 
navbat, stek, dek va satrlar kiradi.
Bunday tuzilma uzunliklari oldindan beriladi (statiklik sharti), lekin tuzilmani tashkil etuvchi 
elementlar soni dastur bajarilishi mobaynida vaqtga va ro‘yxat uzunligiga bog‘liq ravishda 
o‘zgarib turishi mumkin. 
Yarimstatik ma’lumotlar tuzilmasi turlari 
Yarimstatik tuzilmalarga demak, yuqorida sanab o’tilgan navbat, stek, dek va satrlar ko’rishimiz 
mumkin.
Navbat bu yarimstatik MT bo’lib, unda elementlar bir xil toifada va ketme-ketlikda joylashadi. 
Navbat tuzilmasining o’ziga xos xususiyati shundaki, unga elementlar bir tomondan kiritilib, 
boshqa tomondan chiqarib olinadi, yani FIFO – First Input First Output ko’rinishidagi tuzilma 
hisoblanadi.Navbatning faqat birinchi elementigagina murojaat qilish mumkin.Navbat bilan 
ishlash uchun queue.h kutubhonasi mavjud bo’lib, ushbu kursda undan foydalanmagan holda 
OXKT ni amalga oshirish talab etiladi. Navbat, stek, dekni dasturda statik yoki dinamik 
ko’rinishda, yani massiv yoki bog’lamli ro’yhat shaklida amalga oshirish mumkin.
Stek bu LIFO, yani Last Input First Output ko’rinishidagi tuzilma bo’lib, u bir xil toifadagi 
elementlar ketma-ketligi hisoblanadi.Stek bir tomoni yopiq tuzilma bo’lib, shu sababli elementlar 
bitta tomondan kiritilib, chiqariladi.
Dek bu Double Ended queue, yani har ikkala tomondan ochiq tuzilma bo’lib, bir xil toifadagi 
elementlar ikkala tomondan kiritilishi va chiqarilishi mumkin. Dek so‘zi (DEQ - Double Ended 
Queue) ingliz tilidan olingan bo‘lib 2 ta chetga ega navbat degan ma’noni bildiradi.
Dek ustida quyidagi amallarni ko’rishimiz va ishlashimiz mumkin:
Chapdan element kiritish. 
O‘ngdan element kiritish. 
Chapdan element chiqarish. 
O‘ngdan element chiqarish. 
Dek bo‘shligini tekshirish. 
Dek to‘laligini tekshirish. 


3.
4.
2.
Yarimstatik ma’lumotlar tuzilmasiga doir misollar 
Stekka element kiritish dasturi. 
Dastur kodi.
#include
#include
using namespace std;
class Node{
public: int info;
Node* ptr; };
intmain(){
Node* Lst = NULL;
Node* p = new Node;
intnumb; cout<<"son kiriting: ";
cin>>numb;
p->info = numb;
p->ptr = Lst;
Lst = p;
cout<<"ELEMENT KIRITILDI!!!"<
cout<<"number="< 
Natija oynasi. 
Dek elementlaridan juftlarini hisoblash dasturi. 
Dastur kodi.
#include
#include
using namespace std;
int a[10], n, R = 0;
voidkiritish(int s){
a[R++] = s;}
voidkiritish_ong(){
for(int i(0); i < R / 2; i++)
swap(a[i], a[R - i - 1]); }


intchiqarish(){
int t = a[0];
for(int i = 0; i < R - 1; i++){
a[i] = a[i + 1]; }
R--;
return t;}
boolisFull(){
if(R >= 10) return true;
else return false;}
boolisEmpty(){
if(R == 0) return true;
else return false;}
void print(){
int i = 0, k;
while(i < R){
k = chiqarish();
i++;
cout<< k << " ";
kiritish(k);}}
int main(){
int n, s, d;
cout<< "n = "; cin>> n;
cout<< "1. chapdan - 2. o'ngdan\n";
cin>> d; 
for(int i(0); i < n; i++){
if(!isFull()){
cin>> s;
kiritish(s);}
else {
cout<< "\ndekto'ldi\n";
n = i; break; }}


if(d == 2) kiritish_ong();
cout<< "dekelementlari:\n";
print(); 
int sum = 0;
for(int i(0); i < n; i++){
s = chiqarish();
if(s % 2 == 0)
sum += s; }
cout<< "\nJuftelementlariyig'indisi = " << sum <
getch();
return 0;}
Dastur natijasi: 
Topshiriq. Dekni bir o'lchamli massiv shaklida hosil qiling va unda 6ta amal bajarishga doir dastur 
tuzing. 
Dastur kodi:
#include
#include
#include
using namespace std;
int main(){
deque myDeque(100),dek(100);
int n,max,min,k=1;
int s=0,yig=0,j=1;
double orta=0;
cout << "n = "; cin >> n;
for(int i=1; i<=n; i++) cin >> myDeque[i];
max = myDeque[1];
min = myDeque[1];
for(int i=1; i<=n; i++) if(max
for(int i=1; i<=n; i++) if(min>myDeque[i]) min=myDeque[i];
for(int i=1; i<=n; i++) if(i%2==0) k*=myDeque[i];
for(int i=1; i<=n; i++) if(i%2!=0) s+=myDeque[i];
for(int i=1; i<=n; i++) yig+=myDeque[i];
orta = yig/2;
for(int i=1; i<=n+n/2; i++) { if(i%3!=0 || i==0) { dek[i] = myDeque[j]; j++; }
else if(i%3==0 && i!=0) dek[i]=myDeque[j-1]+myDeque[j-2]; }


cout << "Massiv Max : " << max << endl;
cout << "Massiv Min : " << min << endl;
cout << "Mas. Toq indekslar ko'paytmasi : " << k << endl;
cout << "Mas. juft indeksli yig'indisi : " << s << endl;
cout << "Massiv yig'indisi : " << yig << endl;
cout << "Massiv o'rta qiymati : " << orta << endl;
cout << "Massiv 2 ta indeks yigindisi joylashuvi : \n";
for(int i=1; i<=n+n/2; i++){
cout << dek[i] << " "; }
cout << endl;
return 0;} 
Dastur natijasi: 
E:\TATU\5-SEMESTR\MTvaA\mustish.exe 
Xulosa
Yarimstatik ma’lumotlar tuzilmasi o‘zgaruvchan uzunlikka ega va uni o‘zgartiruvchi oddiy 
funksiyalariga ega bo’lgan tuzilmalar tushuniladi. Tuzilmaning uzunligini o‘zgartirish ma’lum bir 
chegarada, ya’ni qandaydir bir maksimal qiymatdan oshmagan holda amalga oshirilishi mumkin.
Yarimstatik tuzilmalarga sanab o’tilgan navbat, stek, dek va satrlar ni ko’rib chiqdik.
Navbat bu yarimstatik MT bo’lib, unda elementlar bir xil toifada va ketme-ketlikda joylashadi. 
Navbat tuzilmasining o’ziga xos xususiyati shundaki, unga elementlar bir tomondan kiritilib, 
boshqa tomondan chiqarib olinadi.
Stek bu LIFO, yani Last Input First Output ko’rinishidagi tuzilma bo’lib, u bir xil toifadagi 
elementlar ketma-ketligi hisoblanadi.Stek bir tomoni yopiq tuzilma bo’lib, shu sababli elementlar 
bitta tomondan kiritilib, chiqariladi.
Dek har ikkala tomondan ochiq tuzilma bo’lib, bir xil toifadagi elementlar ikkala tomondan 
kiritilishi va chiqarilishi mumkin.
Yarimstatik ma’lumotlar tuzilmasiga doir misollar namunasini ko’rib dasturda ishlab ko’rdik va 
topshiriqni namunalarga asoslanib bajardik

Download 80.96 Kb.




Download 80.96 Kb.
Pdf ko'rish

Bosh sahifa
Aloqalar

    Bosh sahifa



Mustaqil ishi Mavzu: Yarim statik ma’lumotlar tuzilmalari 110-21-guruh Sobirov ogʻabek

Download 80.96 Kb.
Pdf ko'rish