Texnologiyalari universiteti Farg’ona filiali 730-20 guruh talabasi Mamajonov Raximberdining Ma'lumotlar tuzilmasi va


-MAVZU: Binar daraxtlar bilan ishlash


Download 0.69 Mb.
bet20/23
Sana14.04.2023
Hajmi0.69 Mb.
#1356377
1   ...   15   16   17   18   19   20   21   22   23
Bog'liq
MI MTvaA raximberdi

11-MAVZU: Binar daraxtlar bilan ishlash.


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.


Algoritmning umumiy ko‘rinishi quyidagicha:



  • Qiymatga mos elementni topish




  • Uni o‘chirish

Biz berilgan qiymatga mos qiymatni topganimizdan keyin biz 3- xil holatga duch kelishimiz mumkin.

  1. – Holat: O‘chirilishi lozim bo‘lgan elementning o‘ng farzandi mavjud emas.



Bu holatda biz, shunchaki chap farzandni o’chirilgan element o’rniga ko’chiramiz. Natijada yuqoridagi daraxt quyidagi ko’rinishga keladi:





  1. – Holat: O’chirilishi lozim bo’lgan elementning faqat o’ng farzandi mavjud va o’z navbatida bu farzandning chap tomonida element mavjud emas.

Bu holatda o’chirilgan element o’rniga o’ng farzand (6) ko’chiriladi. Natijada daraxt quyidagi ko’rinishga keladi:





  1. – Holat: O’chirilayotgan elementning o’ng farzandi mavjud va bu farzandning chap farzandi mavjud:

Bu holatda o‘chirilgan element o‘rinini eng chapdagi element egallaydi yaʼni 6. Bunga sabab element o‘chirilganda tuzilma o‘z xususiyatlarini saqlab qolishi zarur yaʼni tugunning chap tomonida undan kichik, o‘ng tomonida esa undan katta qiymat joylashishi kerak. Natija:




Binar daraxti ikkilik ifodalarni ifodalash uchun ishlatiladigan dastur tili hisoblanadi. Binar daraxti ifodalashi mumkin boʻlgan ikkita keng tarqalgan ikkilik ifoda turi algebraik[1] va mantiqiy ifoda turlari hisoblanadi. Binar daraxti birlik va ikkilik operatorlarni oʻz ichiga olgan ifodalarni ifodalashi mumkin.
Binar ifoda daraxtining har bir tugunida nol, bitta yoki ikkita son mavjud. Ushbu cheklangan struktura ifoda daraxtlarini qayta ishlashni soddalashtiradi.

Umumiy koʻrinishi[tahrir | manbasini tahrirlash]



Ikkilik ifoda daraxtining barglari operandlar, masalan, doimiylar yoki oʻzgaruvchilar nomlari va boshqa tugunlarda operatorlar mavjud. Bu alohida daraxtlar ikkilik boʻladi, chunki barcha operatsiyalar ikkilikdir va bu eng oddiy holat boʻlsa-da, tugunlarda ikkitadan ortiq son boʻlishi mumkin. Bundan tashqari, birlik minus operatorida boʻlgani kabi, tugunning har biri faqat bitta songa ega boʻlishi mumkin. Ifodalar daraxti T ni chap va oʻng pastki daraxtlarni rekursiv baholash natijasida olingan qiymatlarga ildizdagi operatorni qoʻllash orqali baholash mumkin.


Oʻtish[tahrir | manbasini tahrirlash]

Algebraik ifoda ikkilik ifoda daraxtidan qavs ichiga olingan chap ifodani rekursiv ishlab chiqarish, soʻngra operatorni ildizga chiqarish va nihoyat, qavs ichiga


olingan oʻng ifodani rekursiv ishlab chiqarish orqali ishlab chiqarilishi mumkin. Ushbu umumiy strategiya (chap, tugun, oʻng) tartibli o'tish sifatida tanilgan. Muqobil oʻtish strategiyasi chap pastki daraxtni, oʻng pastki daraxtni va keyin operatorni rekursiv ravishda chop etishdir. Ushbu oʻtish strategiyasi odatda

Download 0.69 Mb.

Do'stlaringiz bilan baham:
1   ...   15   16   17   18   19   20   21   22   23




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling