nafar_2konkor
Registered User
- تاریخ عضویت
- 31 آگوست 2007
- نوشتهها
- 95
- لایکها
- 1
سلام
من میخوام یه برنامه بنویسم که یه درخت دودویی رو بگیره و به نخی تبدیل کنه ولی توی گرفتن درخت مشکل دارم یه چیزایی نوشتم. یه قسمتیشو براتون میذارم. نمیدونم اصلا درسته یا خیلی پرت و زاغارته.لطفا بگید اشکالش چیه اگرم خیلی پرته لطفا راهنمایی کنید چه کار کنم .
ممنون
من فقط تا جمعه وقت دارم . لطفا دریغ نکنید.
من میخوام یه برنامه بنویسم که یه درخت دودویی رو بگیره و به نخی تبدیل کنه ولی توی گرفتن درخت مشکل دارم یه چیزایی نوشتم. یه قسمتیشو براتون میذارم. نمیدونم اصلا درسته یا خیلی پرت و زاغارته.لطفا بگید اشکالش چیه اگرم خیلی پرته لطفا راهنمایی کنید چه کار کنم .
ممنون
کد:
#include <iostream.h>
class btreenode
{friend class btree;
public:
btreenode(char , btreenode *, btreenode *);
btreenode();
private:
btreenode *lchild;
char data;
btreenode *rchild;
};
btreenode::btreenode(char ch, btreenode *Lefty, btreenode *Righty)
{
data = ch;
lchild= Lefty;
rchild= Righty;
}
btreenode::btreenode()
{
data = 0;
lchild= rchild=0;
}
//$$$$$$$$$$$$$$$$$$$$$$$$$
class btree{
public:
btree();
btree(btreenode *,char ,btreenode *);
btreenode getroot();
btreenode gettree(btreenode *);
private:
btreenode *root;
};
btree::btree()
{root->data=0;
root->lchild=root->rchild=root;
}
btree::btree(btreenode *lc,char d,btreenode *rc)
{root->data=d;
root->lchild=lc;
root->rchild=rc;
}
btreenode btree::getroot(){
int test;
root=new btreenode;
cout<<"enter root";
cin>>root->data;
cout<<"if root have lchild enter 1 else enter0 \n";
cin>>test;
if(test==1)
{root->lchild=new btreenode;
cout<<"enter root->leftchild \n";
cin>>root->lchild;
}
cout<<"if root have rchild enter 1 else enter0 \n";
cin>>test;
if(test==1)
{ root->rchild=new btreenode;
cout<<"enter root->rftchild \n";
cin>>root->rchild;
gettree(root->lchild);
gettree(root->rchild);
}
}
btreenode btree::gettree(btreenode *b)
{int n;
cout<<"enter the node number:\n";
cin>>n;
/*if n=1
return root;
else*/
for(int i=1;i<n+1;n++)
{
btreenode *temp=b;
temp=new btreenode;
cout<<"enter data\n";
cin >>temp->data;
cout<<"enter lchild\n";
cin>>temp->lchild;
temp=temp->lchild;
gettree(temp);
cout<<"enter rchild\n";
cin>>temp->rchild;
temp=temp->rchild;
gettree(temp);
return *temp;
}