Vektorlar va ko’p o’lchovli massivlar bilan ishlash, ro‘yxat, navbat va stek Ma’ruza rejasi



Download 1,82 Mb.
bet8/10
Sana31.12.2021
Hajmi1,82 Mb.
#232564
1   2   3   4   5   6   7   8   9   10
Bog'liq
Maruza(DOC)

Dastur kodi

#include

#include

#include

struct Stack {

char data[100]; // 100 ta simvolli stek

int size; // elementlar soni

};

int Push ( Stack &S, char x )



{

if ( S.size == 100 ) return 0;

S.data[S.size] = x;

S.size ++;

return 1;

}

char Pop ( Stack &S )



{

if ( S.size == 0 ) return char(255);

S.size --;

return S.data[S.size];

}

int isEmpty ( Stack &S )



{

if ( S.size == 0 )

return 1;

else return 0;

}
int main()

{

char br1[3] = { '(', '[', '{' };



char br2[3] = { ')', ']', '}' };

char s[80], upper;

int i, k, error = 0;

Stack S;


S.size = 0;

printf("Qavsli ifodani kiriting > ");

gets ( s );

for ( i = 0; i < strlen(s); i++ )

{

for ( k = 0; k < 3; k++ )



{

if ( s[i] == br1[k] )// agar ochilivchi qavs bo‘lsa

{

Push ( S, s[i] ); // stekka kiritish



break;

}

if ( s[i] == br2[k] )// agar yopilivchi qavs bo‘lsa



{

upper = Pop ( S ); // yoqori elementni olish

if ( upper != br1[k] ) error = 1;

break;


}

}

if ( error ) break;



}

if ( ! error && (S.size == 0) )

printf("\nError\n");

else printf("\nExcelent\n");

getch();

return 0;

}
Navbat

Navbat deb shunday strukturaga aytiladiki, navbatga kelib tushgan birinchi elementga birinchi bo‘lib xizmat ko‘rsatiladi va navbatdan chiqariladi. Navbatga biz kundalik hayotda magazinda, o‘qishda, ishda har doim duch kelamiz. Buni albatta dasturlashda ham ishlatish mumkin. Masalan, siz printerga bir vaqtning o‘zida uchta hujjatni chop etish bo‘yicha buyruq berdingiz. Ular o‘z navbatida navbatida hosil qiladi va eng birinchi navbat (masalan, yuzdan bir sekun oldin) olgani birinchi chop etiladi.



Navbat boshi – massivdan o‘chiriladigan elementning raqami.

Navbat oxiri – navbatga kiritiladigan massiv elementi.

Mazkur ko‘rinishdagi xizmat ko‘rsatishni navbat, ya’ni FIFO (First input-First output, ya’ni birinchi kelgan – birinchi ketadi) nomlash qabul qilingan. Navbat har ikkala tomondan ochiq bo‘ladi.

Navbatni amalga oshirish uchun ikkita ko‘rsatkichdan foydalaniladi: h boshi va t oxiri.



Qo‘shish oxiridan va o‘chirish ro‘yxat boshidan amalga oshiriladi. Agarda navbat bo‘sh bo‘lsa, h va t ning qiymati nol ga teng bo‘ladi (ya’ni navbat bo‘sh bo‘ladi). Shuning uchun element qo‘shishda ro‘yxat o‘zgarmaydi.

Navbatlar asosan arifmetik ifodali masalalarni tahlil qilishda, prebor (ajratish)li masalalarda hamda graflardagi algoritmlarda ishlatiladi.

Navbatni eng oddiy ko‘rinishda chegaralangan massiv A[0..N-1] ko‘rinishida tasvirlash mumkin.

Navbatni oxiridan yangi element qo‘shish uchun h va t zarur. Buning uchun qiymatni yozamiz va t ni oshiramiz:

A[t] = k;

t = (t + 1) mod N;

0, 1 va 2 dan tashkil topgan navbatga yangi element qo‘shganda k = 3 ga teng bo‘ladi:



Navbat boshidan o‘chirish:

k = A[h];

h = (h + 1) mod N;

Masalan, yuqoridagi navbatdan 0 elementini o‘chirgandan so‘ng quyidagini olamiz:

Universal navbat har bir tuguni axborot qismi void turidagi ko‘rsatkichdan iborat strukturadir:

struct slist_node

{

void* info;



struct slist_node* next;

};

Navbat o‘zi alohida struktura sifatida kiritilgan.



struct que

{

struct slist_node* beg;



struct slist_node* end;

int size;

int width;

};

Bu yerda beg birinchi tugunga ko‘rsatkich, end oxirgi tugunga ko‘rsatkich, width ma’lumot hajmi, size navbatdagi elementlar soni.



Asosiy funksiyalar:


Download 1,82 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish