Mundarija: Kirish Ro'yxatlar. Amalga oshirish imkoniyatlari ro'yxati
Download 34.46 Kb.
|
1111Doimiy ustuvor navbat algoritmlari
agar (f == birinchi) { // agar bu boshlanish bo'lsa
birinchi = birinchi-> keyingi; birinchi -> oldingi = NULL; o'chirish f; qaytish 1; } agar (f == oxirgi) { // agar navbatning oxiri oxirgi = oxirgi-> oldingi; oxirgi->keyingi = NULL; o'chirish f; qaytish 1; } f->oldingi->keyingi = f->keyingi; f->keyingi->oldingi = f->oldingi; o'chirish f; qaytish 1; } boshqa { avval o'chirish; birinchi = oxirgi = NULL; qaytish 1; } } Priority agar (birinchi) qaytish & (birinchi->inf); boshqa NULLni qaytarish; } bool DelFirst () { // birinchi elementni olib tashlash usuli agar (birinchi) DelElemni qaytarish (birinchi->inf. inf); boshqa qaytish 0; } void free () { // ro'yxatni tozalash agar (birinchi! = NULL) qil DelElem (birinchi->inf. inf); while (birinchi); } void Show () { // elementlarni ekranda aks ettirish usuli DKList *f = birinchi; agar (! f) { // agar navbat bo'sh bo'lsa cout << "NULL"; qaytish; } esa (f) { cout << f->inf. inf << '|' << f->inf. p << '\t'; f = f->keyingi; } } unsigned ListSize () { DKList *f = birinchi; int n = 0; esa (f) f = f->keyingi, ++n; qaytish n; } T* ListToArr () { int n = ListSize (); DKList *f = birinchi; T *arr; agar (! n) NULLni qaytarish; arr = yangi T [n]; n = 0; esa (f) arr [n++] = f->inf. inf, f = f->keyingi; qaytish arr; } }; shablon shablon raqam { MenyuStart = 0, MenyuQo'shish, Menyu ko'rsatish, MenuGet, MenuToArr, Menyu, MenuDelElem, Menyu Bepul, Menyudan chiqish }; int menyusi () { int m; qil { tizim ("cls"); cout << "Menyu:" << "\n [" << MenyuQo'shish << "] - Element qo'shish" << "\n [" << MenyuShow << "] - Elementlarni ko'rsatish" << "\n [" << MenuGet << "] - Birinchi elementni oling" << "\n [" << MenuToArr << "] - Massivga ustuvorliklar ro'yxatini nusxalash" << "\n [" << MenuDel << "] - Birinchi elementni o'chirish" << "\n [" << MenuDelElem << "] - Elementni qiymati bo'yicha o'chirish" << "\n [" << MenuFree << "] - Bo'sh xotira" << "\n [" << Menyudan chiqish << "] - Chiqish" << "\nSizning tanlovingiz: "; cin >> m; } while (m <= MenuStart || m > MenuExit); m qaytarish; } int main () { DKList Priority int tmp, *a; unsigned n; bool bl = rost; esa (bl) almashtirish (menyu ()) { Case MenuAdd: tizim ("cls"); cout << "Elementning kirish qiymati: "; cin >> tmp; cout << "Kirish ustuvorligi: "; cin >> n; lst. AddElem (tmp, n); cout << "\tElement muvaffaqiyatli qo'shildi"; getchar (); getchar (); sindirish; Case MenuShow: tizim ("cls"); cout << "Elementlar (qiymat|ustuvorlik): "; lst. Ko'rsatish (); cout << "\n" << lst. ListSize () << " elementlar. "; getchar (); getchar (); sindirish; Case MenuToArr: tizim ("cls"); agar (a = lst. ListToArr ()) { cout << "Masiv [" << a << "]: "; uchun (imzosiz i = 0; i < lst. ListSize (); ++i) cout << a [i] << '\t'; cout << "\n\tElementlar muvaffaqiyatli nusxalandi!" << endl; } boshqa cout << "\tList NULL!"; getchar (); getchar (); sindirish; case MenuGet: tizim ("cls"); agar (pr = lst. GetElem ()) { cout << "Birinchi elementning qiymati: " << pr->inf << endl; cout << "Birinchi elementning ustuvorligi: " << pr->p; } boshqa cout << "\tList NULL!"; getchar (); getchar (); sindirish; Case MenuDel: tizim ("cls"); agar (birinchi DelFirst ()) cout << "\tBirinchi element o'chirildi!"; boshqa cout << "\tList NULL!"; getchar (); getchar (); sindirish; Bosh sahifa MenyuDelElem: tizim ("cls"); cout << "Elementning kirish qiymati: "; cin >> tmp; agar (alst. DelElem (tmp)) cout << "\tElement muvaffaqiyatli o'chirildi"; boshqa cout << "\tBu element topilmadi!"; getchar (); getchar (); sindirish; Case MenuFree: tizim ("cls"); lst. ozod (); cout << "\tElements o'chirildi!"; getchar (); getchar (); sindirish; Case MenyuChiqish: tizim ("cls"); bl = noto'g'ri; lst. ozod (); sindirish; } tizim ("pauza"); qaytish 0; } 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