Algoritm tushunchasi
top()--Stekning eng yuqori elementini olish peek()--
Download 0.73 Mb.
|
Algoritmlashdan javoblar
- Bu sahifa navigatsiya:
- Dek ustida bajariladigan amallar
- C++ tilida dekni statik ko‘rinishda, ya’ni bir o‘lchamli massiv ko‘rinishida amalga oshirishga misol
top()--Stekning eng yuqori elementini olish
peek()--stekning N-elementiga murojaat #include #include using namespace std; int main() { stack stek.push(2); stek.push(3); stek.push(9); stek.push(10); cout<<"Stekning uchinchi elementi:"< return 0; } 13 Deklar. C++ tilida dekni tashkil qilish Dek so‘zi (DEQ - Double Ended Queue) ingliz tilidan olingan bo‘lib 2 ta chetga ega navbat degan ma’noni bildiradi. 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. Dek so‘zi (DEQ - Double Ended Queue) ingliz tilidan olingan bo‘lib 2 ta chetga ega navbat degan ma’noni bildiradi. Dekning o‘ziga 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 in/2 bo‘lsa, dekning o‘ng tomonidan kiritiladi, 2-qadamga o‘tish. 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<="" 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; 14 Dinamik ma’lumotlar tuzilmasi Dinamik ma'lumotlar tuzilmalari ikki shaklda bo'ladi: bog'liq bo'lmagan dinamik ma'lumotlar; bog’liq dinamik ma'lumotlar. Bog’liq bo'lmagan dinamik ma'lumotlar tuzilmasi statik bilan bir xil. Bundan tashqari, bog'liq bo'lmagan dinamik ma'lumotlar avtomatik ravishda emas, balki dasturchi tomonidan xotirada saqlanadi. Bog’liq bo’lgan dinamik ma'lumotlarga ro'yxatlar, navbatlar va ustunlar kiradi; Dinamik ma’lumotlar tuzilmasi – bu qandaydir bir qonuniyatga asoslanib shakllangan, lekin elementlari soni, o’zaro joylashuvi va o’zaro aloqasi dastur bajarilishi davomida shu qonuniyat asosida dinamik o’zgaruvchan bo’lgan ma’lumotlar tuzilmasidir. Dasturlarda dinamik ma’lumotlar tuzilmasidan ko’pincha chiziqli ro’yhatlar, steklar, navbatlar va binar daraxtlar ishlatiladi. Bu tuzilmalar bir-biridan elementlarning bog’lanish usuli va ular ustida bajarilishi mumkin bo’lgan amallari bilan farqlanadi. Dinamik tuzilmalar massiv va yozuvdan farqli ravishda operativ xotirada ketma-ket sohalarda joylashmaydi. Ixtiyoriy dinamik tuzilma elementi 2 ta maydondan tashkil topadi: tuzilma tashkil etilishiga sabab bo’layotgan informatsion maydon va elementlarning o’zaro aloqasita’minlovchi ko‘rsatkichlimaydon. 15 Saralash algoritmlari. Saralash algoritmlarining murakkabligi Saralashning ichki va tashqi saralash turi mavjud: 1.ichki saralash - bu tezkor xotiradagi ma’lumotlarni saralash; 2.tashqi saralash - tashqi xotira (fayllar)dagi ma’lumotlarni saralash. Saralash deganda ma’lumotlarni xotirada muayyan tartibda uning kalitlari boʻyicha joylashtirish, muayyan tartib deganda esa kalit qiymati boʻyicha oʻsish (yoki kamayish) tartibida roʻyxatning boshidan oxirigacha joylashtirish tushuniladi. Saralash algoritmlarining samaradorligini bir necha parametrlari boʻyicha farqlash mumkin. Bu parametrlarning asosiylari quyidagilar hisoblanadi: -saralash uchun sarflanadigan vaqt; - saralash uchun talab qilinadigan tezkor xotira hajmi. Saralash algoritmlarini baholashda faqat “joyida” saralash usullarini qarab chiqamiz, ya’ni saralash jarayoni uchun qoʻshimcha xotira zahirasi talab qilinmaydi. Ma’lumotlarni saralashning qat’iy (toʻgʻri) va yaxshilangan usullari mavjud boʻlib, qat’iy usullariga quyidagilarni misol qilib olish mumkin: 1) toʻgʻridan-toʻgʻri qoʻyish orqali saralash usuli; 2) toʻgʻridan-toʻgʻri tanlash orqali saralash usuli; 3) toʻgʻridan-toʻgʻri almashtirish orqali saralash usuli. Download 0.73 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling