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


oxirgi = p; } Agar elementni birinchi joyga qo'yish kerak bo'lsa


Download 34.46 Kb.
bet8/12
Sana31.03.2023
Hajmi34.46 Kb.
#1313943
1   ...   4   5   6   7   8   9   10   11   12
Bog'liq
1111Doimiy ustuvor navbat algoritmlari

oxirgi = p;

}

Agar elementni birinchi joyga qo'yish kerak bo'lsa:

Aks holda (f == birinchi) {

p->keyingi = f;

f->oldingi = p;

birinchi = p;

}

Agar element navbatning birinchi yoki oxirgi pozitsiyasiga mos kelmasa, u ustuvorlikka ko'ra o'rtaga joylashtiriladi:

else {f->oldingi->keyingi = p;

p-> oldingi = f-> oldingi;

p->keyingi = f;

f->oldingi = p;

}

3.4 Navbatdan elementni olib tashlash

bool DelElem(T inf) usuli elementni qiymat bo'yicha navbatdan olib tashlaydi. Bunda navbatdagi elementning mavjudligi tekshiriladi va muvaffaqiyatli o'chirilgan taqdirda 1 qaytariladi, aks holda - 0. Elementni qidirish tsikllari:

esa (f && f->inf. inf! = inf)

f = f->keyingi;

Agar DelElem() ga berilgan qiymat element qiymatlaridan biriga mos kelsa, o'chirish sodir bo'ladi. Bunday holda, agar element birinchi, oxirgi pozitsiyalarda, navbatning o'rtasida bo'lsa va navbatda bir nechta element bo'lsa, variantlar hisobga olinadi.

Agar element birinchi holatda bo'lsa (navbatda bir nechta element mavjud):

agar (birinchi->keyingi) {

agar (f == birinchi) {

birinchi = birinchi-> keyingi;

birinchi -> oldingi = NULL;

o'chirish f;

qaytish 1;

}

Aks holda, element oxirgi holatda bo'lsa:

agar (f == oxirgi) {

oxirgi = oxirgi-> oldingi;

oxirgi->keyingi = NULL;

o'chirish f;

qaytish 1;

}

Aks holda, navbatning o'rtasida bo'lsa:

f->oldingi->keyingi = f->keyingi;

f->keyingi->oldingi = f->oldingi;

o'chirish f;

qaytish 1;

Va agar navbatda faqat bitta element bo'lsa, u o'chiriladi:

boshqa {

avval o'chirish;

birinchi = oxirgi = NULL;

qaytish 1;

}

3.5 Navbatdagi birinchi elementga kirish

Navbat printsipiga ko'ra, kirish navbatdagi birinchi elementga (eng yuqori ustuvorlik bilan) amalga oshiriladi. Bunday element statik birinchi ko'rsatkichga ega bo'lib, unga Priority* GetElem() usuli yordamida kirish imkonini beradi:


Download 34.46 Kb.

Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   12




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