O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI QARSHI FILIALI
“ KI ” FAKULTETI 2 – BOSQICH ATS-11-19 GURUH TALABASI BOQIYEV AZIZXONNING MA’LUMOTLAR TUZULMASI VA ALGORITMLARI FANIDAN TAYYORLAGAN
Bajardi: Boqiyev A
Qabul qildi: Begulov O
QARSHI – 2020
T1 va T2 binar daraxtlar tengligini tekshiruvchi dastur tuzing (Daraxtlar teng deyiladi, agar ikkala daraxt mos uchlarining yozuv va kalitlari o’zaro teng bo’lsa).
#include
using namespace std;
bool b=1;
class node{
public:
int info;
node *left;
node *right;
};
//daraxtni ekranga xotirada qanday joylashganini ko'ratuvchi funksiya
void vizual(node *tree,int l){
int i;
if(tree!=NULL) {
vizual(tree->right,l+1);
for (i=1; i<=l; i++) cout<<" ";
cout<info<
vizual(tree->left,l+1);
}
}
void Tenglikka_tekshirish(node *T1, node *T2,int l){
int i;
if(T1!=NULL&&T2!=NULL){
Tenglikka_tekshirish(T1->right, T2->right, l+1);
b&=T1->info==T2->info;
//info maydonlari teng bo'lsa b=1 bo'ladi aks holda b=0 bo'ladi
Tenglikka_tekshirish(T1->left,T2->left,l+1);
}
}
int main(){
node *T1=NULL,*T2=NULL;
node *next1=NULL,*next2=NULL;
//Daraxtlar tengligini isbotlash uchun ulardagi elementlar soni teng bo'lishi kerak
//Shuning uchun ikkala daraxt uchun ham n sonini elementlar soni sifatida qaraymiz
int n,key; cout<<"Daraxtlar elementlari soni nechta?";cin>>n;
cout<<"Birinchi daraxt elementlarini kiriting: ";
for(int i=0;i
node *p=new node;
node *last=new node;
cin>>key;
p->info=key;
p->left=NULL;
p->right=NULL;
if(i==0){
T1=p;
next1=T1;
continue;
}
next1=T1;
while(1){
last=next1;
if(p->infoinfo){
next1=next1->left;
}
else{
next1=next1->right;
}
if(next1==NULL) break;
}
if(p->infoinfo) last->left=p;
else last->right=p;
}
cout<<"Ikkinchi daraxt elementlarini kiriting: ";
for(int i=0;i
node *p=new node;
node *last=new node;
cin>>key;
p->info=key;
p->left=NULL;
p->right=NULL;
if(i==0){
T2=p;
next2=T2;
continue;
}
next2=T2;
while(1){
last=next2;
if(p->infoinfo){
next2=next2->left;
}
else{
next2=next2->right;
}
if(next2==NULL) break;
}
if(p->infoinfo) last->left=p;
else last->right=p;
}
cout<<"Birinchi daraxt vizual ko'rinishi\n"; vizual(T1,0);
cout<<"Ikkinchi daraxt vizual ko'rinishi\n"; vizual(T2,0);
//ikkala daraxtning ham ko'rinishi
Tenglikka_tekshirish(T1,T2,0);
if(b==1){
cout<<"Daraxtlar teng";
} else cout<<"Daraxtlar teng emas";
}
Do'stlaringiz bilan baham: |