O’zbekiston aloqa, axborotlashtirish va telekommunikatsiya texnologiyalari davlat qo’mitasi



Download 1,61 Mb.
Pdf ko'rish
bet61/79
Sana08.09.2021
Hajmi1,61 Mb.
#168521
1   ...   57   58   59   60   61   62   63   64   ...   79
Bog'liq
C C dasturlash

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; 


 102 
  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.   
 


 103 
   
 
 
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: 


 104 
 
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,61 Mb.

Do'stlaringiz bilan baham:
1   ...   57   58   59   60   61   62   63   64   ...   79




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