“Dasturiy injiniring” fakulteti “MA‟lumotlar tuzilmasi va algoritmlar”


Algoritm  1. Agar stek to„lmagan bo„lsa elementlarni kiritamiz. Stekning toq  elementlarini saqlab turish uchun yangi b[]



Yüklə 1,33 Mb.
Pdf görüntüsü
səhifə18/49
tarix08.11.2022
ölçüsü1,33 Mb.
#67920
1   ...   14   15   16   17   18   19   20   21   ...   49
Malumotlar-tuzilmasi-va-algoritmlar-asosida-nazariy-bilimlarini-hamda

Algoritm 
1. Agar stek to„lmagan bo„lsa elementlarni kiritamiz. Stekning toq 
elementlarini saqlab turish uchun yangi b[] massiv e‟lon qilamiz. 
2. Agar stek bo„sh bo„lmasa, 3-qadamga o„tish, aks holda 4-qadamga o„tish. 
3. Stek uchidagi elementni olamiz va juftlikka tekshiramiz. Agar element toq 
bo„lsa b massivga joylaymiz. 2-qadamga o„tish.
4. b massiv elementlarini teskari tartibda stekka joylash. 
5. 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; 


40 
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<
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]); 



41 
cout<<"\nnatijaviy stek elementlari: "; 
print(); 
system("PAUSE"); 

Dasturning bajarilishi natijasi: 
n =5 




11 
stek elementlari: 11 8 9 7 6 
natijaviy stek elementlari: 11 9 7 
 
2.4. 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: 
 
1. Chapdan element kiritish. 
2. O„ngdan element kiritish. 
3. Chapdan element chiqarish. 


42 
4. O„ngdan element chiqarish. 
5. Dek bo„shligini tekshirish. 
6. Dek to„laligini tekshirish. 
C++ tilida dekni statik korinishda, ya’ni bir olchamli massiv korinishida 
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.
Algoritm 
1. Dekka nechta element kiritilishi aniqlanadi – n, i=0. 
2. i++; agar i4-qadamga o„tiladi. 
3. Agar in/2 
bo„lsa, dekning o„ng tomonidan kiritiladi, 2-qadamga o„tish. 
4. Agar dek bo„sh bo„lmasa, chapdan element chiqarib olamiz. Agar element 
juft bo„lsa, b[] massivga joylaymiz. 5-qadamga o„tiladi. Agar dek bo„sh bo„lsa, 6-
qadamga o„tish. 
5. Agar dek bo„sh bo„lmasa, o„ngdan element chiqarib olamiz. Agar element 
juft bo„lsa, b[] massivga joylaymiz. 5-qadamga o„tiladi. Agar dek bo„sh bo„lsa, 6-
qadamga o„tish. 
6. b[] massiv elementlarini dekka o„ng tomondan kiritamiz. 

Yüklə 1,33 Mb.

Dostları ilə paylaş:
1   ...   14   15   16   17   18   19   20   21   ...   49




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin