41
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.
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 i
4-qadamga o„tiladi.
3. Agar i
n/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.
Dostları ilə paylaş: