8.Daraxtlarni Prufer usulida kodlash. Daraxtlarni ularning kodi bo’yicha yasash
Daraxtlarni Prufer usulida kodlash
Daraxtlarni ularning kodi bo’yicha yasash
8.1. Daraxt - bu uning har bir tuguni nol yoki bir- necha bolaga ega bo‘lgan iyerarxik tuzilmadir. Daraxt tuzilmasi quyidagi ko‘rinishda bo‘lishi mumkin:Bu daraxt oila tuzilmasini ifoda etmoqda. Daraxt tugunlari odamlarni ifodalamoqda, chiziqlar esa ular orasidagi bog‘lanishni. Bu turdagi maʼlumotlarni saqlash uchun daraxt tuzilmasi eng qulay tuzilma hisoblanadi.
Ikkilik (Binar) daraxt
Binar daraxt yuqorida ko‘rsatilgan daraxtga o‘xshaydi, lekin baʼzi qoidalarga asosan quriladi:
• Har bir tugundagi bolalar soni 2 tadan oshmasligi zarur
• Xar qanday tugun qiymatidan kichik bo‘lgan qiymat chap farzandga yoki chap farzandning chap farzandiga yoziladi
• Xar qanday tugun qiymatidan katta bo‘lgan qiymat o‘ng farzandga yoki ong farzandning o‘ng farzandiga yoziladi
• Keling shu qoidalar asosida qurilgan daraxtni ko‘raylik:
Ahamiyat bering, bosh tugun (8)dan chapdagi barcha elementlarning qiymatlari sakkizdan kichik undan o‘ngdagisi esa sakkizdan katta. Bu qoidalar daraxtning xar bir tuguniga tegishli.
Keling daraxt bo‘sh bo‘lgandan boshlab qanday qurilganini qarab chiqamiz. Birinchi navbatda 8 ni qo‘shamiz. Dastlab daraxt bo‘sh bo‘lgani sabab u bosh tugun hisoblanadi. Undan keyin 4 ni qo‘shamiz. 8 dan 4 kichik bo‘lgani uchun tepadagi qoidalarga amal qilgan xolda 4 ni 8 ning chap tomoniga yozamiz. 8 ning hech qanday farzandi bo‘lmagani uchun 4 shu joyda qoladi.
Endi 2 kiritamiz. Maʼlumki 2 dan 8 katta, shu sabab chapga yuramiz. Chapda allaqachon qiymat borligi sabab chap farzand qiymati 2 bilan solishtiriladi. Chap farzandning qiymati (4) 2 dan kata bo‘lgani sabab 4 ning chap tomoni qaraladi. 4 ning chap tomonida element bo‘lmagani sabab 2 shu joyga joylashtiriladi. Shunday qilib kiritilgan xar bir element uchun yuqoridagi solishtiruvlar qaytariladi. Daraxtdan element olib tashlash
Daraxt elementini o‘chirish oddiy tuyulishi mumkin, lekin hisobga olish kerak bo‘lgan holatlari mavjud.
1 – Holat: O‘chirilishi lozim bo‘lgan elementning o‘ng farzandi mavjud emas.
2 – Holat: O’chirilishi lozim bo’lgan elementning faqat o’ng farzandi mavjud va o’z navbatida bu farzandning chap tomonida element mavjud emas.