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.
Do'stlaringiz bilan baham: |