Mundarija: Kirish Ro'yxatlar. Amalga oshirish imkoniyatlari ro'yxati
Download 34.46 Kb.
|
1111Doimiy ustuvor navbat algoritmlari
inf. inf = 0;inf. p = 0;}Parametrlari bo'lgan konstruktor T tipidagi ma'lumotlarga ega (T i o'zgaruvchisi orqali o'tgan) va ustuvor p (imzosiz pr) bilan navbat elementini yaratadi. Bunday element hali navbatga qo'shilmagan va o'z-o'zidan mavjud:DKList (T i, imzosiz pr): keyingi (NULL), oldingi (NULL) {inf. inf = i;inf. p = pr;}3.3 Navbatga element qo'shishNavbatga element qo'shishning ikkita varianti mavjud: element parametrlari bo'yicha va allaqachon tayyorlangan DKList elementiga ko'rsatgich orqali.Elementni parametrlar (ma'lumotlar, element ustuvorligi) bo'yicha qo'shishga urinayotganda, void AddElem (T i, unsigned pr) usuli qabul qilingan parametrlar asosida DKList (yangi DKList (i, pr)) tipidagi ob'ektni yaratadi va uni quyidagiga o'tkazadi. sinf ob'ektidagi ko'rsatgichni qabul qiluvchi AddElem () usulining ortiqcha yuklanishi:void AddElem (T i, unsigned pr) {AddElem (yangi DKList (i, pr));}void AddElem(DKList* p) usuli p elementni navbatga bog'laydi. Qo'shishda uchta variant hisobga olinadi:Navbat boʻshBirinchi holatda joylashtiringNavbat oxirida kiritisho'rtasiga kiritingAgar ro'yxat bo'sh bo'lsa, p element navbatning birinchi va oxirgi elementi bo'ladi:DKList *f = birinchi;agar (! f) {oxirgi = birinchi = p;qaytish;}Bundan tashqari, agar navbat bo'sh bo'lmasa, navbatdagi elementning o'rni belgilangan ustuvorlikka muvofiq qidiriladi:esa (f->keyingi &&(yuqoriga? f->inf. p < p->inf. p: f->inf. p > p->inf. p))f = f->keyingi;Agar elementni navbat oxiriga qo'yish kerak bo'lsa, elementning ustuvorligi tekshiriladi va element navbatda birinchi bo'ladi:agar (! f->keyingi&& (yuqoriga? f->inf. p < p->inf. p: f->inf. p > p->inf. p)) {f->keyingi = p;p->oldingi = f;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