Binar daraxtlar haqida tushuncha
Def.1.
Agar daraxtni tashkil etuvchi element(tugun)lardan ko`pi bilan 2ta shox chiqsa, yani har bir tugun tuzilmaning ko`pi bilan 2ta tuguni bilan bog`langan bo`lsa, u holda bunday daraxt binar daraxt deyiladi.
Umumiy holda binary daraxt har bir elementi 4ta maydonga ega yozuv hisoblanadi.
Masalan, quyidagi kalit elementardan binar daraxt quramiz:
50, 46, 61, 48, 29, 55, 79. u quyidagi ko`riishga ega bo`ladi:
Izoh
Binar daraxtda key(left_son).
оtа
Chаp o`g`il
O`ng o`g`il
Tarif 2. Agar daraxtning o`ng va chap qism daraxtlari bosqiclari va vazni teng bo`lsa, u holda bunday binar daraxt ideal muvozanatlangan daraxt deyiladi
Tarif 2. Agar daraxtning o`ng va chap qism daraxtlari bosqiclari va vazni teng bo`lsa, u holda bunday binar daraxt ideal muvozanatlangan daraxt deyiladi
Yuqorida hosil qilingan binary daraxtimiz ideal muvozanatlangan daraxtga misol bo`ladi.
Tarif 3. Agar daraxtning o`ng va chap qism daraxtlari bosqiclari orasida farq 1 dan katta bo`lmasa, u holda bunday binary daraxt muvozanatlangan daraxt deyiladi:
m-o`lchamli daraxtni binar ko`rinishga keltirish
Ko`p o`lchamli daraxtni binary ko`rinishga keltirishning noformal algoritmi: Daraxtning har bir tugunida katta o`g`liga mos chetki chap shoxidan tashqari barcha shoxlari kesib tashlanadi.
Bitta otaning barcha o`g`illari gorizontal chiziq bilan ulanadi.
Hosil qilingan tuzilmada har bir katta o`g`il mazkur tugun pastida turgan tugun hisoblanadi. (agar u mavjud bo`lsa). Amallar ketma-ketligi quyida keltirilgan:
yoki
Daraxt ko’ruvi (elementlarni ma’lum bir ko’rinishda tartiblash yoki chop etish);
Daraxtga yangi tugun qo’yish;
Daraxt tugunini o’chirish;
Daraxt tugunini qidirish.
Binar daraxti ustida bajariladigan asosiy amallar.
Daraxt ko’ruvi
Tog’ri (Yuqoridan quyiga). Ko’ruv quyidagi ketma-ketlikda bajariladi: A-B-C;
Simmetrik (Chapdan o’ngga). Ko’ruv quyidagi ketma-ketlikda bajariladi: B-A-C.
Teskari (quyidan yuqoriga). Ko’ruv quyidagi ketma-ketlikda bajariladi: B-C-A.
Daraxtga yangi tugun qo’shish
Daraxtga yangi tugun qo’shish
Daraxtga biron bir tugun qo’shishdan oldin daraxtga berilgan kalit bo’yicha qidiruvni amalga oshirish lozim bo’ladi. Agar berilgan kalitga teng kalitli tugun mavjud bo’lsa, u xolda dastur o’z ishini yakunlaydi, aks holda daraxtga tugun qo’yish amalga oshiriladi.
Eslatma: Daraxtda yangi tugun faqatgina ko’rsatgichlarini kamida bittasi bo’sh bo’lgan tugundan keyin qo’yiladi.
Binar daraxtdan elementlarni o’chirish.
Daraxt tuguni o’chrilayotganda 3 hil holat bo’lishi mumkin:
Topilgan tugun terminal. Bu holatda tugun shunchaki o’chirib tashlanadi.
Topilgan tugun faqatgina bitta o’g’ilga ega. U holda o’g’il ota o’rniga joylashtiriladi.
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 ‘ng tomondagi tuguni (ushbu zvenoga erishish uchun keying uchiga chap shoh orqali o’tib, navbatdagi uchlariga esa murojaat NIL bo’lmagunicha, faqatgina o’ng shohlari orqali o’tish zarur).
Yoki o’ng qisim daraxtning eng chap tuguni (ushbu zvenoga erishish uchun keying uchta o’ng shoh orqali o’tib, navbatdagi uchlariga esa, murojaat NIL bo’lmaguncha, faqatgina chap shohlari orqali o’tish zarur).
Binar daraxtidan tugunni o’chirish.
Бинар дарахтда қидирув
Бинар дарахтда қидирув
Mazkur prodseduraning vazifasi shundan iboratki, u berigan kalit bo’yicha daraxt tuguni qidiruvini amalga oshiradi. Qidiruv operatsiyasining davomiyligi daraxt tuzilishiga bog’liq bo’ladi. Haqiqatdan, agar elementlar daraxtga kalit qiymatlari o’sish (kamayish) tartibida kelib tushgan bo’lsa, u holda daraxt bir tomonga yo’nalgan ro’yhat hosil qiladi (chiqish darajasi 1 bo’ladi, ya’ni yagona shohga ega),
Bu holatda daraxtda qidiruv vaqti, bir tomonlama yo’naltirilgan ro’yhatdagi kabi bo’lib, o’rtacha qarab chiqishlar soni N/2 bo’ladi.
Agar daraxt muvozanatlangan bo’lsa, u holda qidiruv eng samarali natija beradi.
Do'stlaringiz bilan baham: |