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