link->data = data; if(isEmpty()) { last = link; } else { head->prev = link; } link->next = head; head = link; } Halqasimon ikki bog‘lamli ro‘yxatdan element o‘chirish algoritmi O‘chirilishi kerak bo‘lgan joriy element r dan oldin turgan element adresini prev ko‘rsatkichga o‘zlashtirib olamiz Node *Prev=p->prev; oldin turgan elementning next maydoniga r dan keyin turgan element adresini yozamiz: Prev->next=p->next; joriy elementdan keyin turgan elementni Next deb belgilab olib, uning prev maydoniga joriy elementdan oldin kelgan elementni adresini o‘zlashtiramiz: Node *Next=p->nextI; Next->prev=Prev; delete(p); Natijada joriy r element o‘chiriladi. Amaliy mashqlar. - Chiziqli bir bog’lamli ro’yhatdan key kalitga mos elementni ketma-ket qidiruv usuli yordamida izlab topish dasturi.
Node *q=NULL; Node *p=lst; while (p !=NULL){ if (p->k == key){ search = p; return search; } q = p; p = p->nxt; } Node *s=new Node;; s->k=key; s->r=rec; s->nxt= NULL; if (q == NULL){ s->nxt=lst; lst = s; } else q->nxt = s; search= s; return search; Xulosa. Ro’yhatli tuzilmaning afzalligi shundan iboratki, ro’yhatga elementni qo’shish yoki o’chirish tez amalga oshadi, bunda qo’shish yoki o’chirish element soniga bog’liq bo’lmaydi, massivda esa elementni qo’shish yoki o’chirish o’rta hisobda barcha elementlarning yarmini siljitishni talab qiladi. Ro’yhatda qidiruvning samaradorligi taxminan massivniki bilan bir xil bo’ladi. Foydalanilgan adabiyotlar. 3. A.Azamatov algoritimlar kitobi. 4. fayillar.org
Do'stlaringiz bilan baham: |