3-amaliyot ishi mavzu: stack,queue,dequeue(stek,navbat,dek) Yarimstatik ma’lumotlar tuzilmasi



Yüklə 105,03 Kb.
səhifə4/4
tarix25.12.2023
ölçüsü105,03 Kb.
#196561
1   2   3   4
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<
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


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.




  1. O‘ngdan element chiqarish.

  2. Dek bo‘shligini tekshirish.

  3. 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 i

  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.

  7. Dek tarkibini ekranga chiqaramiz.

Dastur kodi
#include
#include
using namespace std;
int a[10],n,R=0;
bool isEmpty(){
if(R==0) return true; else return false;
}
bool isFull(){
if(R>=10) return true; else return false;
}
int kirit_left(int s){
if(isFull()){cout<<"\ndek to'ldi";n=R;return EXIT_SUCCESS;}
for(int i=R;i>0;i--)
a[i]=a[i-1];
a[0]=s;R++;
}
int olish_left(){
if(isEmpty()){cout<<"\ndek bo'sh";return EXIT_SUCCESS;}
int t=a[0];
for(int i=0;i
a[i]=a[i+1];
R--;
return t;
}
int kirit_right(int s){
if(isFull()){cout<<"\ndek to'ldi";n=R;return EXIT_SUCCESS;}
a[R]=s;R++;
}
int olish_right(){
if(isEmpty()){cout<<"\ndek bo'sh";return EXIT_SUCCESS;}
R--;
return a[R];
}
int print(){
cout<
cout<
}
int main(int argc, char *argv[])
{ int n,s;cout<<"n="; cin>>n;
for(int i=0;i
if(!isFull()){
cout<<"kirit=";cin>>s;
if(i>=n/2) kirit_right(s);
else kirit_left(s);}
else {cout<<"dek to'ldi\n";break;}
}
print();
int b[n/2],k=0,c[n/2],p=0;
while(!isEmpty()){
int q=olish_left();
if(q%2==0) b[k++]=q;
if(isEmpty()) break;
int p=olish_right();
if(p%2==0) b[k++]=p;
}
int i=0;
while(i
kirit_right(b[i]);
i++;
}
print();
system("PAUSE");
return EXIT_SUCCESS;
}
Dastur natijasi
n=8
kirit=1
kirit=2
kirit=3
kirit=4
kirit=5
kirit=6
kirit=7
kirit=8
dek ele-tlari=4 3 2 1 5 6 7 8
dek ele-tlari=4 8 2 6

TOPSHIRIQLAR



  1. N ta elementdan tashkil topgan navbat yarating va birinchi bilan oxirgi element o’rnini almashtiring.

  2. N ta elementdan tashkil topgan navbat berilgan. Navbatning o’rtadagi elemntini o’chiring.

  3. N ta elementdan tashkil topgan navbat berilgan.navbatning eng kichik elementini toping va bu elelementni 0 bilan almashtiring.

  4. N ta elementdan tashkil topgan navbat berilgan.navbatning eng kichik elementini toping va ushbu elementni o’chiring.

  5. N ta elementdan tashkil topgan stek berilgan. Stekning barcha barcha elelementlari yig’indisini toping.

  6. N ta elementdan tashkil topgan navbat berilgan. Navbatning oxiridagi elementiga teng barcha elementlarni o’chiring.

  7. N ta elementdan tashkil topgan navbat berilgan.navbatning eng katta elementini o’chiring.

  8. N ta elementdan tashkil topgan dek berilgan. Dekning barcha jufta elemtlarini yig’idisini toping.

  9. N ta elementdan tashkil topgan stek berilgan. stekning o’rtadagi elemntini o’chiring.

  10. N ta elementdan tashkil topgan stek berilgan.stekning eng kichik elementini toping va bu elementni 1 bilan almashtiring.

  11. N ta elementdan tashkil topgan navbat berilgan.navbatning eng katta elementini toping va ushbu elementdan keyin 3 sonini kiriting.

  12. N ta elementdan tashkil topgan stek berilgan.stekning eng kichik elementini toping va uni o’chiring.

  13. N ta elementdan tashkil topgan stek berilgan.stekning boshidagi elementga teng barcha elementlarni o’chiring.

  14. N ta elementdan tashkil topgan dek berilgan. Dekning barcha musbat elementlarini yig’indisini toping.

  15. N ta elementdan tashkil topgan navbat berilgan. navbatning barcha toq elementlarini yig’indisini toping.

  16. N ta elementdan tashkil topgan ikkita navbat berilgan. Birinchi navbatning barcha manfiy elementlarini ikkinchi navbatga joylashtiring va ikkinchi navbatning barcha musbat elementlarini birinchi navbatga joylashtiring.

  17. N ta elementdan tashkil topgan ikkita stek berilgan. Birinchi stekning barcha manfiy elementlarini ikkinchi stekga joylashtiring va ikkinchi stekning barcha musbat elementlarini o’chiring.

  18. N ta elementdan tashkil topgan ikkita navbat berilgan. Birinchi navbatning barcha toq elementlarini ikkinchi navbatga joylashtiring va ikkinchi navbatning barcha juft elementlarini birinchi navbatga joylashtiring.

  19. N ta elementdan tashkil topgan stek berilgan.stekning eng kichik elementini toping va bu elementni 5 bilan almashtiring.

  20. N ta elementdan tashkil topgan navbat berilgan.navbatning eng katta elementini toping va ushbu elementdan keyin 8 sonini kiriting.

  21. N ta elementdan tashkil topgan dek berilgan. Dekning barcha musbat elementlarini yig’indisining kvadratini toping .

  22. N ta elementdan tashkil topgan stek berilgan.stekning eng kichik elementini toping va bu elementni 0 bilan almashtiring.

  23. N ta elementdan tashkil topgan navbat berilgan.navbatning eng kichik elementini toping va ushbu elementni o’chiring.

  24. N ta elementdan tashkil topgan stek berilgan. Stekning barcha barcha elelementlari yig’indisinining kvadratini toping.

  25. N ta elementdan tashkil topgan navbat berilgan. Navbatning oxiridagi elementiga teng barcha elementlarni o’chiring.

  26. N ta elementdan tashkil topgan navbat yarating va birinchi bilan oxirgi element o’rnini almashtiring.

  27. N ta elementdan tashkil topgan navbat berilgan. Navbatning o’rtadagi elemntini o’chiring.

  28. N ta elementdan tashkil topgan navbat berilgan. Navbatning barcha toq elementlarini yig’indisinining ikkilanganini toping.

  29. N ta elementdan tashkil topgan stek berilgan.stekning eng kichik elementini toping va bu elementdan keyingi elementni o’chiring.

  30. N ta elementdan tashkil topgan ikkita navbat berilgan. Birinchi navbatning barcha toq elementlarini ikkinchi navbatga joylashtiring .

  31. N ta elementdan tashkil topgan navbat berilgan.navbatning eng kichik elementini toping va undan oldingi elementni o’chiring.


NAMUNA
(Amaliyot ishlarini bajarilishiga namuna )
AMALIYOTY ISHI-N
Mavzu______________________________________________________________

VARIANT-N

  1. Massiv elementlarini ……………………………………………………………………………………………………..

DASTUR KODI
(dastur kodi sceenshot qilinmasin. Dastur kodini copy and past(nusxa olish) qilish kerak)
NATIJA
Yüklə 105,03 Kb.

Dostları ilə paylaş:
1   2   3   4




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin