Reja qidiruv binar daraxti tushunchasi


Daraxtga biror bir elementni qo’shishdan oldin daraxtda berilgan kalit bo’yicha qidiruvni amalga oshirish lozim bo’ladi



Yüklə 11,58 Kb.
səhifə3/4
tarix30.12.2023
ölçüsü11,58 Kb.
#167120
1   2   3   4
4gY1tIJRbr61EFKVy52ED6yB5b74D6XlEA6kx92R

Daraxtga biror bir elementni qo’shishdan oldin daraxtda berilgan kalit bo’yicha qidiruvni amalga oshirish lozim bo’ladi.

  • Daraxtga biror bir elementni qo’shishdan oldin daraxtda berilgan kalit bo’yicha qidiruvni amalga oshirish lozim bo’ladi.
  • Agar berilgan kalitga teng kalit mavjud bo’lsa, u holda dastur o’z ishini yakunlaydi, aks holda daraxtga element qo’shish amalga oshiriladi.
  • Daraxtga yangi yozuvni kiritish uchun, avvalo daraxtni shunday tugunini topish lozimki, natijada mazkur tugunga yangi element qo’shish mumkin bo’lsin.
  • Kerakli tugunni qidirish algoritmi ham xuddi berilgan kalit bo’yicha tugunni topish algoritmi kabi bo’ladi.
  • Biroq berilgan kalit bo’yicha qidiruv prosedurasidan to’g’ridan-to’g’ri (bevosita) foydalanib bo’lmaydi, sababi, qidiruv prosedurasida, qaysi tugunda murojaat NIL (search = nil) bo’lgani fiksirlanmaydi.

Qidiruv prosedurasini shunday modifikasiya qilamizki, qo’shimcha samara sifatida yangi proseduramiz berilgan kalit turgan tugunni fiksirlasin (qidiruv muvofaqiyatli bo’lsa), yoki shunday tugunniki, ushbu tugunni qayta ishlagandan keyin qidiruv yakunlansin (qidiruv muvofaqiyatli bo’lsa).

  • Qidiruv prosedurasini shunday modifikasiya qilamizki, qo’shimcha samara sifatida yangi proseduramiz berilgan kalit turgan tugunni fiksirlasin (qidiruv muvofaqiyatli bo’lsa), yoki shunday tugunniki, ushbu tugunni qayta ishlagandan keyin qidiruv yakunlansin (qidiruv muvofaqiyatli bo’lsa).
  • Endi Binar daraxtda qo’shilayotgan element kalitiga teng kalitli element yo’q bo’lgan holda elementni qo’shish prosedurasini keltirib o’tamiz. ( yani element qo’shishda avval bunday element bor yoki yoqligi tekshiriladi):
  •  

Node *q=NULL;

  • Node *q=NULL;
  • Node *p=tree;
  • while(p!=NULL){
  • q=p;
  • if(key==p->key){
  • search=p;
  • return 0;
  • }
  • If(key
    key) p=p->left;
  • else p=p->right;
  • }
  • {Berilgan kalitga teng tugun topilmadi, element qo’shish talab qilinadi. Ota bo’lishi mumkin tugunga q ko’rsatkich beriladi.}
  • node *q=new node;

Yüklə 11,58 Kb.

Dostları ilə paylaş:
1   2   3   4




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©www.genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə