binar qidiruv daraxti

DOC 12 стр. 124,5 КБ Бесплатная загрузка

Предварительный просмотр (5 стр.)

Прокрутите вниз 👇
1 / 12
8.2-ma'ruza. binar qidiruv daraxti. ko'p ishlatiladigan daraxtlardan biri binar qidiruv daraxtidir. bunday daraxtda tugunning chap bolasining berilganlar maydonining (kalit) qiymati ota-ona tugunida berilgan qiymatdan kichik bo'lishi kerak, o'ng tomonning berilganlar maydonining (kalit) qiymati esa ota-onadagidan katta yoki teng bo'lishi kerak. binar qidiruv daraxtiga misol: berilgan kalit bilan tugunni qidiring. misol tariqasida quyidagi binar qidiruv daraxtini ko'rib chiqamiz: aytaylik, kaliti 57 ga teng bo’lgan tugunni topish kerak bo’lsin. qidiruv ildiz tugunidan boshlanadi va 57 qiymatni ildiz tugunining kaliti 63 ga solishtiradi. qidirilayotgan qiymat kichik, shuning uchun qidiruv daraxtning chap tomonida ya’ni ildiz tugunining chap qismi yoki chap pastki daraxtning avlodlaridan biri tomonida davom ettiriladi. ildiz tugunining chap bolasining kaliti 27; 57 va 27 solishtiriladi, bu esa o’z navbatida qidirilayotgan tugun 27 kalitli tugunning o'ng pastki daraxtiga tegishli ekanligini ko'rsatadi. shu tarzda 51 bilan solishtiriladi undan katta, shuning uchun qidiruv jarayoni avval o'ngga boradi va 58 ga, so'ngra chapga 57 ga o'tadi. …
2 / 12
t == 0) return; if (result node = find(data); if (node == null) { return; } //agar tugun avlod tugunga ega bo’lmasa uni o’chirish mumkin if (node.left == null && node.right == null) { if (node.nodeside == side.left) { node.parent.left = null; } else { node.parent.right = null; } return; } // agar chap bola tugun yo’q bo’lsa, u xolda //o’ng bola tugun o’chirilgan tugun o’rniga qo’yiladi if (node.left == null) { if (node.nodeside == side.left) { node.parent.left = node.right; } else { node.parent.right = node.right; } node.right.parent = node.parent; return; } //agar o’ng bola tugun yo’q bo’lsa, u xolda chap //bola tugun o’chirilgan tugun o’rniga qo’yiladi if (node.right == null) { if (node.nodeside == side.left) { node.parent.left = node.left; } else { node.parent.right = node.left; } node.left.parent = node.parent; return; } //agar ikki bola tugun ham mavjud bo’lsa, //o’ng bola tugun o’chiriladigan tugun o’rniga //chap bola tugun esa o’ng …
3 / 12
aliroq bo’lishi mumkin, lekin u daraxtdan nisbatan kam sonli o'chirish uchun mos bo'lishi mumkin. (masalan, agar sobiq xodimlarning ma'lumotlari xodimlar bo'limi ma'lumotlar bazasida abadiy qolsa.) daraxtni ekranga chop qilish. daraxtni ekranda ko'rsatish uchun quyidagi print() usulidan foydalaniladi. u daraxt bo’ylab o’tishning turli usullarini chaqirishi mumkin, masalan: // ikkilik daraxtni chiqarish public void print() { printprerec(root); // printprenorec(); // printinfrec(root); // printposrec(root); // printposnorec(); // printbfs(); } daraxtlarni asosiy dasturda ishlatilishi. using system; namespace binarytree { class program { static void main(string[] args) { var binarytree = new binarytree (); binarytree.add(8); binarytree.add(3); binarytree.add(10); binarytree.add(1); binarytree.add(6); binarytree.add(4); binarytree.add(7); binarytree.add(14); binarytree.add(16); binarytree.print(); console.writeline(new string('-', 40)); binarytree.remove(3); binarytree.print(); console.writeline(new string('-', 40)); binarytree.remove(8); binarytree.print(); console.readline(); } } } dastur natijasi: ikkilik daraxtlarning samaradorligi yuqorida aytib o'tganimizdek, ko'plab daraxt operatsiyalari ma'lum bir tugunni topish uchun pog’onadan pog’onaga tushishni talab qiladi. bunday o'tish qancha vaqt talab etadi? to'liq daraxtda tugunlarning taxminan yarmi eng pastki pog’onada bo’ladi. (aniqrogʻi, …
4 / 12
nmagan massiv yoki bog‘langan ro‘yxatda kerakli elementni topish uchun o‘rtacha 500 000 ta taqqoslash kerak bo‘ladi. ammo 1 000 000 tugunli daraxt uchun 20 ta (yoki undan kam) taqqoslash etarli bo’ladi. tartiblangan massivda elementlar tezda topiladi, lekin kiritish uchun o'rtacha 500 000 ta amal kerak bo'ladi. 1 000 000 ta tugunli daraxtga element kiritish uchun 20 yoki undan kam taqqoslash va tugunni ulash uchun ahamiyatsiz vaqt talab etiladi. xuddi shunday, 1 000 000 ta elementli massivdan elementni olib tashlash uchun oʻrtacha 500 000 ta elementni siljitish kerak boʻlsa, 1 000 000 ta tugunli daraxtdan elementni olib tashlash uchun 20 yoki undan kam taqqoslash kerak, va oʻrindoshini topish uchun (ehtimol) yana bir necha taqqoslash kerak va elementni ajratish va vorisni biriktirish uchun ahamiyatsiz vaqt talab qiladi. shunday qilib, daraxt berilganlarni saqlashning barcha asosiy amallari uchun yuqori samaradorlikni ta'minlaydi. o'tish boshqa operatsiyalar kabi tez emas. biroq, odatdagi katta berilganlar bazasi uchun o'tish …
5 / 12
binar qidiruv daraxti - Page 5

Хотите читать дальше?

Скачайте все 12 страниц бесплатно через Telegram.

Скачать полный файл

О "binar qidiruv daraxti"

8.2-ma'ruza. binar qidiruv daraxti. ko'p ishlatiladigan daraxtlardan biri binar qidiruv daraxtidir. bunday daraxtda tugunning chap bolasining berilganlar maydonining (kalit) qiymati ota-ona tugunida berilgan qiymatdan kichik bo'lishi kerak, o'ng tomonning berilganlar maydonining (kalit) qiymati esa ota-onadagidan katta yoki teng bo'lishi kerak. binar qidiruv daraxtiga misol: berilgan kalit bilan tugunni qidiring. misol tariqasida quyidagi binar qidiruv daraxtini ko'rib chiqamiz: aytaylik, kaliti 57 ga teng bo’lgan tugunni topish kerak bo’lsin. qidiruv ildiz tugunidan boshlanadi va 57 qiymatni ildiz tugunining kaliti 63 ga solishtiradi. qidirilayotgan qiymat kichik, shuning uchun qidiruv daraxtning chap tomonida ya’ni ildiz tugunining chap qismi yoki chap pastki daraxtning avlodlaridan biri...

Этот файл содержит 12 стр. в формате DOC (124,5 КБ). Чтобы скачать "binar qidiruv daraxti", нажмите кнопку Telegram слева.

Теги: binar qidiruv daraxti DOC 12 стр. Бесплатная загрузка Telegram