Mundarija: Kirish Ro'yxatlar. Amalga oshirish imkoniyatlari ro'yxati


Download 34.46 Kb.
bet7/12
Sana31.03.2023
Hajmi34.46 Kb.
#1313943
1   2   3   4   5   6   7   8   9   ...   12
Bog'liq
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'shish

Navbatga 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ʻsh

Birinchi holatda joylashtiring

Navbat oxirida kiritish

o'rtasiga kiriting

Agar 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:
1   2   3   4   5   6   7   8   9   ...   12




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling