“Dasturiy injiniring” fakulteti “MA‟lumotlar tuzilmasi va algoritmlar”



Yüklə 1,33 Mb.
Pdf görüntüsü
səhifə33/56
tarix08.09.2023
ölçüsü1,33 Mb.
#142109
1   ...   29   30   31   32   33   34   35   36   ...   56
dokumen.tips aoemaalumotlar-tuzilmasi-va-ekvivalentlik-implikatsiya-chiqarib-tashlash-va


shish funksiyasi 
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.


72 
Daraxtga yangi yozuvni kiritish uchun, avvalo daraxtning 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.
Daraxtda qo‟shilayotgan element kalitiga teng kalitli element yo‟q bo‟lgan 
holda elementni tuzilmaga qo‟shish funksiyasini keltirib o‟tamiz. 
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, elementning o‟zi esa 
yangi
nomli 
ko‟rsatkichi bilan beriladi. 
node *q=new node; 
Qo‟yilayotgan yangi element chap yoki o‟ng o‟g‟il bo‟lishini aniqlash lozim. 
If(keykey) q->left=yangi; 
else q->right=yangi; 
search=yangi; 
return 0; 
 
4.8. Binar daraxtdan elementni o

chirish funksiyasi 
Tugunni o‟chirib tashlash natijasida daraxtning tartiblanganligi buzilmasligi 
lozim.


73 
Tugun daraxtda o‟chirilayotganda 3 xil variant bo‟lishi mumkin: 
1) Topilgan tugun terminal (barg). Bu holatda tugun otasining qaysi 
tomonida turgan bo‟lsa, otasining o‟sha tomonidagi shoxi o‟chiriladi va tugunning 
xotirada joylashgan sohasi tozalanadi. 
2) Topilgan tugun faqatgina bitta o‟g‟ilga ega. U holda o‟g‟il ota o‟rniga 
joylashtiriladi. 
3) O‟chirilayotgan tugun ikkita o‟g‟ilga ega. Bunday holatda shunday qism 
daraxtlar zvenosini topish lozimki, uni o‟chirilayotgan tugun o‟rniga qo‟yish 
mumkin bo‟lsin. Bunday zveno har doim mavjud bo‟ladi: 
- bu yoki chap qism daraxtning eng o‟ng tomondagi elementi (ushbu 
zvenoga erishish uchun keyingi uchiga chap shox orqali o‟tib, navbatdagi uchlariga 
esa, murojaat 
NULL
bo‟lmaguncha, faqatgina o‟ng shoxlari orqali o‟tish zarur); 
- yoki o‟ng qism daraxtning eng chap elementi (ushbu zvenoga erishish 
uchun keyingi uchiga o‟ng shox orqali o‟tib, navbatdagi uchlariga esa, murojaat 
NULL
bo‟lmaguncha, faqatgina chap shoxlari orqali o‟tish zarur).
O‟chirlayotgan element chap qism daraxtining eng o‟ngidagi element 
o‟chirilayotgan element uchun merosxo‟r bo‟ladi ( 12 uchun – 11 bo‟ladi). 
Merosxo‟r esa o‟ng qism daraxtning eng chapidagi tuguni (12 uchun - 13). 
Merosxo‟rni topish algoritmini ishlab chiqaylik (4.8-rasmga qarang). 

Yüklə 1,33 Mb.

Dostları ilə paylaş:
1   ...   29   30   31   32   33   34   35   36   ...   56




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin