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


Download 34.46 Kb.
bet12/12
Sana31.03.2023
Hajmi34.46 Kb.
#1313943
1   ...   4   5   6   7   8   9   10   11   12
Bog'liq
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* GetElem () { // navbatdan birinchi elementni olish usuli
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 DKList* DKList:: first = NULL;
shablon DKList* DKList:: last = NULL;
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 lst;
Priority *pr;
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:
1   ...   4   5   6   7   8   9   10   11   12




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