Amaliy mashg’ulot- 8


ni old tomonga qo'shsak, u holda bog'langan ro'yxat 510152025


Download 20.77 Kb.
bet3/6
Sana23.12.2022
Hajmi20.77 Kb.
#1046217
1   2   3   4   5   6
Bog'liq
8-amaliy mashg\'ulot

5 ni old tomonga qo'shsak, u holda bog'langan ro'yxat 510152025 bo'ladi. Ro'yxatning old qismiga qo'shiladigan funktsiyani push () deb ataymiz. bosh ko'rsatkichiga ko'rsatgichni qabul qilishi kerak, chunki surish yangi tugunga ishora qilish uchun bosh ko'rsatkichini o'zgartirishi kerak(3-rasm).
Oldinga tugun qo'shish uchun 5 ta qadam quyida keltirilgan.

void push(struct Node** head_ref, int new_data)


{

struct Node* new_node = (struct Node*)malloc(sizeof(struct Node));




new_node->data = new_data; new_node->next = (*head_ref); new_node->prev = NULL;

if ((*head_ref) != NULL) (*head_ref)->prev = new_node;




(*head_ref) = new_node;

}





  1. Berilgan tugundan keyin tugun qo'shish: (7 bosqichli jarayon) Bizga tugunga ko'rsatgich prev_node sifatida beriladi va yangi tugun berilgan tugundan so'ng kiritiladi.

  2. tugunni oxiriga qo'shish: (7 bosqichli jarayon) Yangi tugun har doim berilgan bog'langan ro'yxatning oxirgi tugunidan keyin qo'shiladi. Masalan, agar berilgan Ikkitalik bog’langan ro’yxatning 510152025 bo'lsa va biz oxirida 30-bandni qo'shsak, u holda Ikkitalik bog’langan ro’yxat 51015202530 bo'ladi. Bog'langan ro'yxat odatda uning boshlig'i tomonidan taqdim etilganligi sababli biz ro'yxatni oxirigacha bosib o'tib, keyingisini o'zgartirishimiz kerak. oxirgi tugunning yangi tugunga.

Sizlar bilan o’tilgan laboratoriya darslarida STL hamda konteyner tushunchalari bilan tanishgan edik. Stek ham C++ da konteynerning bir turi hisoblanadi. U ham boshqa konteyner turlari singari asosan turli xildagi ma’lumotlarni saqlovchi ma’lumotlar tuzilmasidir.
Steklar - bu LIFO (Last In First Out) ishlaydigan konteyner adapterlarining bir turi hisoblanadi. Ya’ni Dastlab kiritilgan element oxirida olinadi.Stekda “topdeb nomlangan element mavjud, u eng yuqoridagi elementdir. Barcha qo’shish va o’chirish operatsiyalari to’plamdagi yuqori elementning o’zida amalga oshiriladi.


Quyida stek bilan bog’liq asosiy funksiyalarni ko’rib chiqmiz:





    1. empty() funksiyasi – ushbu funksiya stekning bo’sh yoki biror bir element borligini tekshirish uchun ishlatiladi.

    2. size() funksiyasi – ushbu funksiya stek hajmini aniqlash uchun ishlatiladi.

    3. top() funksiyasi – ushbu funksiya stekning yuqoridagi elementiga murojaat uchun ishlatiladi.

    4. push() funksiyasi – stekning yuqori qismiga element qo’shish uchun ishlatiladi.

    5. pop() funksiyasi – stekning yuqori qismidagi elementni o’chirish uchun ishlatiladi.

Stekni e’lon qilish hamda uning qiymatlarini hamda hajmini aniqlash uchun quyidagi jarayonni ko’rib chiqamiz.

#include


using namespace std;

void showstack(stack s) //s nomli stekni ko’rsatuvchi “showstack” nomli funksiya e’lon qilinmoqda.


{
while (!s.empty()) //stek bo’shligi tekshirilmoqda
{
cout << '\t' <}
cout << '\n';
}
int main ()
{
stack s; // s nomli stek e’lon qilinmoqda s.push(10);
s.push(30);
s.push(20);
s.push(5);
s.push(1);
cout << "The stack is : "; showstack(s);
cout << "\ns.size() : " << s.size();
cout << "\ns.top() : " << s.top(); cout << "\ns.pop() : ";
s.pop(); showstack(s);

return 0;


}



Download 20.77 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




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