Muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti fan



Download 0,83 Mb.
Pdf ko'rish
Sana30.12.2021
Hajmi0,83 Mb.
#95665
Bog'liq
Ma'lumotlar tuzilmasi 6-lab



O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA 

KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI 

 

MUHAMMAD AL-XORAZMIY NOMIDAGI 

TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI 

 

 

 

Fan   

 

 

 

 

    Ma’lumotlar tuzilmasi va algoritmlari 

 

 



 

 

 



 

 

 



 

 

LABORATORIYA ISHI № 6 



 

MAVZU:

 

DARAXTSIMON 

MA’LUMOTLAR 

TUZILMASINI 

TADQIQ QILISH

 

 

 



 

 

 



Guruh: 

 

 

 

 

 

 

 

 

      415 - 19 

 

Bajardi:  

 

 

 

 

 

 

 

 

      Ma’rufjonov O 

 

Tekshirdi:    

 

 

 

 

 

 

 

      Bo’riyev Y 

 

 



 

 

 



 

 

Toshkent–2020 



 

 


Nazariy qism 

 

 



 

Binar daraxtining tuzilishi 



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: 

 



2 – 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: 

 

 



3 – 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:  

 

 



Masala sharti 

13-tartib raqam 

Binar daraxtning barcha barglari yozuvini chop etuvchi dastur ishlab chiqing 

Dastur kodi: 

/* 

Ma'rufjonov Obidjon 



Binar daraxtning barcha barglari yozuvini 

chop etuvchi dastur ishlab chiqing. 

*/ 

#include  



 

using namespace std; 

 

struct Daraxt_bargi 



int sanalar; 

struct Daraxt_bargi *chap, *ong; 

}; 


 

void Daraxt_bargi_chiqarish(Daraxt_bargi *ildiz) 

if (!ildiz) 



return; 

 

 



if (!ildiz->chap && !ildiz->ong) 

cout << ildiz->sanalar << " "; 




return; 

 



if (ildiz->chap) 

Daraxt_bargi_chiqarish(ildiz->chap); 

 

if (ildiz->ong) 



Daraxt_bargi_chiqarish(ildiz->ong); 

 



 

Daraxt_bargi* newDaraxt_bargi(int sanalar) 

Daraxt_bargi *temp = new Daraxt_bargi; 



temp->sanalar = sanalar; 

temp->chap = temp->ong = NULL; 

return temp; 

 



 

int main() 

 

Daraxt_bargi *ildiz = newDaraxt_bargi(199); 



ildiz->chap = newDaraxt_bargi(432); 

ildiz->ong = newDaraxt_bargi(323); 

ildiz->chap->chap = newDaraxt_bargi(564); 

ildiz->ong->chap = newDaraxt_bargi(875); 




ildiz->ong->ong = newDaraxt_bargi(988); 

ildiz->ong->chap->chap = newDaraxt_bargi(667); 

ildiz->ong->chap->ong = newDaraxt_bargi(987); 

ildiz->ong->ong->chap = newDaraxt_bargi(943); 

ildiz->ong->ong->ong = newDaraxt_bargi(1000); 

 

 



cout << "Berilgan daraxt shu holatda " << endl << endl; 

 

cout << setw(15) << "199" << endl << setw(11) << "*" << 



setw(8) << "*" << endl << setw(8) << "432" << setw(15) << "323" 

<< endl << setw(4) << "*" << setw(15) << "*" << setw(8) << "*" 

<< endl <<  "564" << setw(14) << "875" << setw(14) << "907" 

<< endl << setw(11) << "*" << setw(8) << "*" << setw(8) << "*" 

<< setw(8) << "*" << endl << setw (11) << "667" << setw(8) 

<< "987" << setw (8) << "943" << setw(8) <<"1000" << endl << endl; 

cout << "Daraxt barglari qiymatlari " << endl; 

Daraxt_bargi_chiqarish(ildiz); 

 

 



return 0; 



Natija 




 

Download 0,83 Mb.

Do'stlaringiz bilan baham:




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish