Talabasi Samandar Orifjonov


Download 0.61 Mb.
bet6/11
Sana17.12.2022
Hajmi0.61 Mb.
#1025687
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
ozim deadline

Kiritish


Tugunni to'rtta usulda qo'shish mumkin

    1. Ikkitalik bog’langan ro’yxatningning old qismida

    2. berilgan tugundan keyin.

    3. Ikkitalik bog’langan ro’yxatning oxirida

    4. berilgan tugundan oldin.

  1. Oldinga tugun qo'shish: (5 bosqichli jarayon)

Yangi tugun har doim berilgan bog'langan ro'yxatning boshidan oldin qo'shiladi. Yangi qo'shilgan tugun esa Ikkitalik bog’langan ro’yxatningning yangi boshiga aylanadi. Masalan, agar berilgan bog'langan ro'yxat 10152025 bo'lsa va biz
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.

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.

Download 0.61 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




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