“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ə21/56
tarix08.09.2023
ölçüsü1,33 Mb.
#142109
1   ...   17   18   19   20   21   22   23   24   ...   56
dokumen.tips aoemaalumotlar-tuzilmasi-va-ekvivalentlik-implikatsiya-chiqarib-tashlash-va

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 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.
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   ...   17   18   19   20   21   22   23   24   ...   56




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