Double Ended Queue ingliz tilidan olingan bo
Download 87.04 Kb.
|
2.4. Deklar-WPS Office
- Bu sahifa navigatsiya:
- Dek ustida bajariladigan amallar
- C++ tilida d ekni statik ko ‘ rinishda, ya’ni bir o ‘ lchamli massiv ko ‘ rinishida amalga oshirishga misol
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: Chapdan element kiritish. O‘ngdan element kiritish. Chapdan element chiqarish. O‘ngdan element chiqarish. Dek bo‘shligini tekshirish. 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 Dekka nechta element kiritilishi aniqlanadi – n, i=0. i++; agar i Agar i 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. 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. b[] massiv elementlarini dekka o‘ng tomondan kiritamiz. Dek tarkibini ekranga chiqaramiz. Dastur kodi #include #include using namespace std; struct DEQUE { int data[50]; int DO,DB; DEQUE(){DO=DB=24;} void ADD(int X, bool K=true) { if (K)data[--DB]=X; else data[DO++]=X; } void PRINT() { for(int i = DB; i cout << data[i]<<"\t"; cout< } int DEL(bool k=true) { if (k) return data[DB++]; else return data[--DO]; } }; int main() { int n; cin>>n; DEQUE A; while(n--) A.ADD(rand()%100+1); A.PRINT(); cout << A.DEL(false) << endl; cout << A.DEL(false) << endl; cout << A.DEL(true) << endl; cout << A.DEL(true) << endl; A.PRINT(); return 0; } Download 87.04 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling