Mundarija: Kirish Ro'yxatlar. Amalga oshirish imkoniyatlari ro'yxati
Navbatni qayta ishlashning barcha shartlari hisobga olinadi
Download 34.46 Kb.
|
1111Doimiy ustuvor navbat algoritmlari
- Bu sahifa navigatsiya:
- 5 Navbat elementlarining qiymatlaridan massiv hosil qilish
- Adabiyotlar royxati
Navbatni qayta ishlashning barcha shartlari hisobga olinadi:1 Elementni navbatga ustuvorligiga ko'ra joylashtiring2 Birinchi elementga navbat bilan kirish3 Navbatdan elementni olib tashlash (birinchi navbatda, qiymat bo'yicha ko'rsatilgan)4 Navbat elementlarini ko'rsatish5 Navbat elementlarining qiymatlaridan massiv hosil qilish6 Navbatni o'chirishDastur OOP tamoyillariga muvofiq, ya'ni inkapsulyatsiya va ob'ektlar bilan ishlash tamoyillariga muvofiq yozilgan. Ishda sinflar va tuzilmalar shablonlari (shablon) qo'llaniladi, bu sizga har qanday turdagi ma'lumotlardan navbat yaratish imkonini beradi. Elementlarning ustuvorligini oshirish / kamaytirish orqali navbatni shakllantirish variantlari mavjud. Sinf bilan ishlash qulayligi uchun tegishli menyu tuzilgan bo'lib, uning har bir bandi tegishli sinf usuli uchun javobgardir. Dastur ishining tahlili o'tkazildi.Adabiyotlar ro'yxati1. Rembo J., Blaha M. UML 2.0. Ob'ektga yo'naltirilgan modellashtirish va ishlab chiqish.2-nashr. - Sankt-Peterburg: Peter, 2007. - 544 p.: kasal. 2. N.B. Kultin, S/S++ vazifalar va misollarda. Sankt-Peterburg: BHV-Peterburg, 2001, - 854 bet. 3. Ob'ektga mo'ljallangan dasturlash asoslari. C++ dasturlash tili/ Volkova I.A., Ivanov A.V., Karpov L.E. - 2-kurs talabalari uchun darslik. - M .: Moskva davlat universiteti CMC fakulteti nashriyot bo'limi (2001 yil 24 sentyabrdagi 05899-sonli litsenziya), 2011 yil - 112 p. 4. Jayswall N.K. Ustuvor navbatlar. - M.: Mir, 1973. - 279 b. Ilova Dastur ro'yxati: #include std nom maydonidan foydalanish; andoza T inf; imzosiz p; }; shablon Priority DKList * keyingi; // keyingi elementga ko'rsatgich DKList * oldingi; // oldingi elementga ko'rsatgich statik DKList *birinchi; statik DKList *oxirgi; ommaviy: DKList(): keyingi (NULL), oldingi (NULL) // standart konstruktor { inf. inf = 0; inf. p = 0; } DKList (T i, unsigned pr): keyingi (NULL), oldingi (NULL) // axborot maydoni va ustuvorligi uchun konstruktor { inf. inf = i; inf. p = pr; } void AddElem (DKList* p) { // element qo'shish usuli DKList *f = birinchi; agar (! f) { // agar navbat bo'sh bo'lsa oxirgi = birinchi = p; qaytish; } while ( f - > keyingi & & ( yuqoriga ? f - > inf . p < p - > inf . p : f - > inf . p > p -> inf . p )) // ishchem meto f = f->keyingi; agar (! f->keyingi && (yuqoriga? f->inf. p < p->inf. p: f->inf. p > p->inf. p)) { // agar navbat oxiri f->keyingi = p; p->oldingi = f; oxirgi = p; } else if (f == birinchi) { // agar navbatning boshlanishi p->keyingi = f; f->oldingi = p; birinchi = p; } else { // agar navbatning o'rtasi bo'lsa f->oldingi->keyingi = p; p-> oldingi = f-> oldingi; p->keyingi = f; f->oldingi = p; } } void AddElem (T i, unsigned pr) { AddElem (yangi DKList (i, pr)); } bool DelElem (T inf) { // qiymat bo'yicha o'chirish usuli DKList *f = birinchi; esa (f && f->inf. inf! = inf) f = f->keyingi; agar (!f) // element topilmasa qaytish 0; agar (birinchi->keyingi) { Download 34.46 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling