|
C++ tilida stekni statik ko„rinishda, ya’ni bir o„lchamli massiv ko„rinishida amalga oshirishga misol
|
bet | 16/47 | Sana | 15.11.2023 | Hajmi | 490,46 Kb. | | #99136 |
C++ tilida stekni statik ko„rinishda, ya’ni bir o„lchamli massiv ko„rinishida amalga oshirishga misol:
Masalaning qo„yilishi: Elementlari butun sonlardan iborat stekning juft qiymatli elementlari o„chirilsin. Aytaylik, stek uchun 10 ta joy ajratilgan bo„lsin, bunda dastlab stek bo„shligi sababli R=0 bo„ladi. Stekga yangi element qo„shish va chiqarish, stek bo„shligini va to„laligini tekshirish funksiyalaridan foydalanib shu masalani yechamiz.
Agar stek to„lmagan bo„lsa elementlarni kiritamiz. Stekning toq elementlarini saqlab turish uchun yangi b[] massiv e‟lon qilamiz.
Agar stek bo„sh bo„lmasa, 3-qadamga o„tish, aks holda 4-qadamga o„tish.
Stek uchidagi elementni olamiz va juftlikka tekshiramiz. Agar element toq bo„lsa b massivga joylaymiz. 2-qadamga o„tish.
b massiv elementlarini teskari tartibda stekka joylash.
Stek tarkibini ekranga chiqarish.
Dastur kodi #include using namespace std;
int a[10],R=0,n;//bu yerda n stekka kiritilishi kerak bo'lgan elementlar soni. int kiritish(int s){
a[R]=s; R++;
}
int chiqarish(){ R--;
return a[R];
}
bool isEmpty(){ if(R==0) return true;
else return false;
}
bool isFull(){
if(R>=10) return true;else return false;
}
int print(){
int i=0,c[n]; while(!isEmpty()){ c[i]=chiqarish(); cout< ";i++;}
for(int j=i-1;j>=0;j--) kiritish(c[j]);
}
int main(){ int n,s;
cout<<"n=";cin>>n; for(int i=0;i
if(!isFull()){ cin>>s; kiritish(s);}
else{cout<<"stek to'ldi"; n=i;break;}
}
cout<<"\nstek elementlari: "; print();
int b[n],k=0;
for(int i=0;i s=chiqarish(); if(s%2!=0) b[k++]=s;
}
for(int i=k-1;i>=0;i--) kiritish(b[i]);
cout<<"\nnatijaviy stek elementlari: "; print();
system("PAUSE");
}
Dasturning bajarilishi natijasi:
n =5
6
7
9
8
11
stek elementlari: 11 8 9 7 6
natijaviy stek elementlari: 11 9 7
Deklar
Dek so„zi (DEQ - Double Ended Queue) ingliz tilidan olingan bo„lib 2 ta chetga ega navbat degan ma‟noni bildiradi. Dekning o„ziga xos xususiyati shuki, unga elementlar har ikkala tomondan – chapdan va o„ng tomondan kiritilishi va chiqarilishi mumkin (2.3-rasm).
2.3-rasm. Dek tuzilmasi
Dek ustida bajariladigan amallar:
Chapdan element kiritish.
O„ngdan element kiritish.
Chapdan element chiqarish.
O„ngdan element chiqarish.
Dek bo„shligini tekshirish.
Dek to„laligini tekshirish.
C++ tilida dekni statik ko„rinishda, ya’ni bir o„lchamli massiv ko„rinishida amalga oshirishga misol: Berilayotgan butun sonlar ketma-ketligining 1-yarmini dekning chap tomonidan, qolgan yarmini dekning o„ng tomonidan kiriting. Dekning elementlarini bir safar chapdan, bir safar o„ngdan juftlikka tekshirib, toq elementlari o„chirilsin.
|
| |