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.