Halqasimon ikki bog’lamli ro’yhatdan elementni o’chirish algoritmi
1. O’chirilishi kerak bo’lgan joriyelementp dan oldin turgan element adresini
prev ko’rsatkichga o’zlashtirib olamiz
Node *Prev=p->prev;
2. oldin turgan elementning next maydoniga p dan keyin turgan element
adresini yozamiz:
Prev->next=p->next;
3. joriyelementdan keyin turgan elementni Next deb belgilab olib, uning prev
maydoniga joriyelementdan oldin kelgan elementni adresini
o’zlashtiramiz:
Node *Next=p->nextI;
Next->prev=Prev;
delete(p);
Natijada joriypelemento’chiriladi.
void delete(Node *p){
Node *Prev=p->prev;
Prev->next=p->next;
Node * Next=p->next;
Next->prev=Prev;
delete(p);
}
Halqasimon ikki bog’lamli ro’yhat elementlarini ekranga chiqarish dasturi
void printList(Node* List)
Nazorat savollar
1. Chiziqli bir bog’lamli ro’yhatlar ustida
amal bayarish algoritmlari
qanaqa?
2. Chiziqli ikki bog’lamli ro’yhatlar ustida amal bayarish algoritmlari
qanaqa?
3. Algoritmlarni dastur kodlarini keltiring.
4. Bog’langan ro’yhatlarda element kiritish qanday amalga oshiriladi?
5. Bog’langanro’yhatlardaelemento’chirishqandayamalgaoshiriladi?
6. Bog’langanro’yhatlardaelementqidirishqandayamalgaoshiriladi?
7. Bog’langanro’yhatlardaelementlarini ekranga chop
etishqandayamalgaoshiriladi?
8. Massivga nisbatan ro’yhatning kamchiligi nimadan iborat?
9. Chiziqli ro’yhatlarning xalqasimon ro’yhatlardan farqi?
10. Nima sababdan ikki bog’lamli ro’yhatlar kerak?
11. Bir va ikki bog’lamli ro’yhatlardagi amallarning farqini tushuntiring?
Adabiyotlar
1. AdamDrozdek. Data structure and algorithms in C++. Fourthedition.
2013. Chapter 3.