Mavzu: Murakkab ma’lumotlar tuzilmalari: Piramida


Download 122.95 Kb.
Sana31.05.2020
Hajmi122.95 Kb.
#112503
Bog'liq
AL labaratoriya 5


O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
«Kompyuter injiniringi» fakulteti
Algoritmlarni loyihalashtirish fanidan

LABORATORIYA ISHI - 5
Mavzu: Murakkab ma’lumotlar tuzilmalari: Piramida.

Bajardi: CAL020-L4 guruhi talabasi

Norboyev Xudoyberdi

Tekshirdi: Atoyib Suhrob

Toshkent 2020


5-LABORATORIYA ISHI
Variant: 12
Masalaning berilishi: Berilgan binar daraxtning har bir juft elementi balandligini aniqlash algoritmi va dasturini keltiring.
Dastur kodi:

#include

#include

using namespace std;

struct tnode{

int data;

tnode *left;

tnode *right;

};

void vizual(tnode *Tree, int l)

{

int i;

if(Tree!=NULL)

{

vizual(Tree->right,l+1);

for(i=1; i<=l; i++)

cout<<" ";

cout<data<

vizual(Tree->left,l+1);

}

}

int balandlik(tnode*Tree)

{

int h1,h2;

if(Tree==NULL)

{

return -1;

}

else

{

h1=balandlik(Tree->left);

h2=balandlik(Tree->right);

if(h1>h2)

return (h1+1);

else

return (h2+1);

}

}

void show(tnode*&Tree)

{

if(Tree!=NULL)

{

show(Tree->left);

cout<data<<" ";

show(Tree->right);

}

}
void del(tnode*& Tree)

{

if(Tree!=NULL)

{

del(Tree->left);

del(Tree->right);

delete Tree;

Tree=NULL;

}

}
void add_node(int x, tnode*&MyTree)

{

if(NULL==MyTree)

{

MyTree=new tnode;

MyTree->data=x;

MyTree->left=MyTree->right=NULL;

}

if(xdata)

{

if(MyTree->left!=NULL)

add_node(x,MyTree->left);

else

{

MyTree->left=new tnode;

MyTree->left->left=MyTree->left->right=NULL;

MyTree->left->data=x;

}

}

if(x>MyTree->data)

{

if(MyTree->right!=NULL)

add_node(x,MyTree->right);

else

{

MyTree->right=new tnode;

MyTree->right->left=MyTree->right->right=NULL;

MyTree->right->data=x;

}

}

}
int main()

{

tnode *tree=NULL;

int x, n;

cout<<"nechta element kiritmoqchisiz:"; cin>>n;

for(int i=0; i

{

cin>>x;

add_node(x,tree);

}

cout<

cout<<"vizual kurinishi:"<

vizual(tree,0);

cout<

cout<<"balandligi:"<

int h=balandlik(tree);

cout<<"h="<

cout<

cout<<"elementlari:"<

show(tree);

cout<

del(tree);

cout<

return 1000;

}


Xulosa
Daraxt – bu shunday chiziqsiz bog‟langan ma‟lumotlar tuzilmasiki, u quyidagi belgilari bilan tavsiflanadi:

- daraxtda shunday bitta element borki, unga boshqa elementlardan murojaat yo‟q. Bu element daraxt ildizi deyiladi;

- daraxtda ixtiyoriy element chekli sondagi ko‟rsatkichlar yordamida boshqa tugunlarga murojaat qilishi mumkin;

- daraxtning har bir elementi faqatgina o‟zidan oldingi kelgan bitta element bilan bog‟langan.



Binar daraxtning balandligi deb daraxt bosqichlari soniga aytiladi. Binar daraxt balandligini aniqlash uchun uning har bir tuguni chap va o‟ng qismdaraxtlari balandliklari solishtiriladi va maksimal qiymat balandlik deb olinadi.
Download 122.95 Kb.

Do'stlaringiz bilan baham:




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