Binar daraxtdan elementni o’chirish prosedurasi




Download 0.6 Mb.
Pdf ko'rish
bet3/3
Sana18.06.2022
Hajmi0.6 Mb.
#23972
1   2   3
Bog'liq
4-labaratoriya
2 - Amaliy topshiriq , 1-ish Murodullo, Vizitka suvga, Beshariq tuman nazoratchi, 22-var 2-MI, 2-amaliy 22-var
Binar daraxtdan elementni o’chirish prosedurasi 
 
Tugunni o’chirib tashlash natijasida daraxtning tartiblanganligi buzilmasligi 
lozim. Tugun daraxtda o’chirilayotganda 3 hil variant bo’lishi mumkin: 
1) Topilgan tugun terminal (barg). Bu holatda tugun shunchaki o’chirib 
tashlanadi. 
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 shoh orqali o’tib, navbatdagi uchlariga esa
murojaat NIL bo’lmaguncha, faqatgina o’ng shohlari orqali o’tish zarur). 


- yoki o’ng qism daraxtning eng chap elementi (ushbu zvenoga erishish uchun 
keyingi uchiga o’ng shoh orqali o’tib, navbatdagi uchlariga esa, murojaat NIL 
bo’lmaguncha, faqatgina chap shohlari orqali o’tish zarur).
O’chirlayotgan element chap qism daraxtining eng o’ngidagi element 
o’chirilayotgan element uchun “Predshestvennik” 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 (5.9 chizma). 
p – ishchi ko’rsatkich; 
q - r dan bir qadam orqadagi ko’rsatkich; 
v – o’chiralyotgan tugun merosxo’rini ko’rsatadi; 
t - v bir qadam orqada yuradi; 
s - v dan bir qadam oldinda yuradi (chap o’g’ilni yoki bo’sh joyni ko’rsatib 
boradi). 
Yuqoridagi daraxt bo’yicha qaraydigan bo’lsak, oxir oqibatda, v ko’rsatkich 
13 tugunni, s esa bo’sh joyni ko’rsatishi lozim. 
1) Elementni qidirish prosedurasi orqali o’chirilayotgan elementni topamiz. r 
ko’rsatkich o’chirilanyotgan elementni ko’rsatadi. 
2) O’chiriladigan elementni o’rniga qo’yiluvchi tugunga v ko’rsatkich qo’yamiz. 
IF left (p)=nil 
THEN v=right (p) 
ELSE IF right (p)=nil 
THEN v=left (p) 
ELSE t=p 
v=right (p) 
s=left (v) 


WHILE s<>nil 
t=v 
v=s 
s=left (v) 
END WHILE 
IF t<>p 
THEN WRITE (v element p ning o’g’li emas) 
left (t)=right (v) 
right (v)=right (p) 
END IF 
left (v)=left (p) 
IF q=nil 
THEN WRITE (v ildiz) 
tree=v 
RETURN 
END IF 
IF p=left (q) 
THEN left (q)=v 
ELSE right (q)=v 
END IF 
END IF 
END IF 
FREENODE (p) (ushbu prosedura bo’sh tugun hosil qiladi, ya’ni o’chirilgan 
element joylashgan xotira yacheykasini tozalaydi.) 
RETURN 



Download 0.6 Mb.
1   2   3




Download 0.6 Mb.
Pdf ko'rish

Bosh sahifa
Aloqalar

    Bosh sahifa



Binar daraxtdan elementni o’chirish prosedurasi

Download 0.6 Mb.
Pdf ko'rish