jo0ojo0o_iut
یک شنبه 16 خرداد 1389, 01:35 صبح
سلام اگه می شه بگید اشکال این کد چیه و باید چه کاری انجام بدم؟ موقع اجرا error میده
اشکالش توی تابع insert هستش
ممنون می شم اگه زودتر جواب بدید!
struct node
{
int data;
node *l,*r;
};
class BST{
node *rishe,*t,*q;
int m;
public:
BST(){
m=0;
};
void insert(int );
bool search(node *,int );
int Depth();
int NoNodes();
};
void BST::insert(int n)
{
q=new node;
if(rishe==NULL)
{
rishe->data=n;
}
q->data=rishe->data;
q->l=rishe->l;
q->r=rishe->r;
t=new node;
t->l=t->r=NULL;
t->data=n;
if(rishe==NULL)
rishe=t;
else
{
while(q!=NULL)
{
if((t->data)>(q->data))
{
if(q->r!=NULL)
q=q->r;
else
{
q->r=t;
m++;
break;
}
}
else if(t->data<q->data)
{
if(q->l!=NULL)
q=q->l;
else
{
q->l=t;
m++;
break;
}
}
else
{
delete(t);
break;
}
}
}
};
void main()
{
BST b;
b.insert(20);
}
اشکالش توی تابع insert هستش
ممنون می شم اگه زودتر جواب بدید!
struct node
{
int data;
node *l,*r;
};
class BST{
node *rishe,*t,*q;
int m;
public:
BST(){
m=0;
};
void insert(int );
bool search(node *,int );
int Depth();
int NoNodes();
};
void BST::insert(int n)
{
q=new node;
if(rishe==NULL)
{
rishe->data=n;
}
q->data=rishe->data;
q->l=rishe->l;
q->r=rishe->r;
t=new node;
t->l=t->r=NULL;
t->data=n;
if(rishe==NULL)
rishe=t;
else
{
while(q!=NULL)
{
if((t->data)>(q->data))
{
if(q->r!=NULL)
q=q->r;
else
{
q->r=t;
m++;
break;
}
}
else if(t->data<q->data)
{
if(q->l!=NULL)
q=q->l;
else
{
q->l=t;
m++;
break;
}
}
else
{
delete(t);
break;
}
}
}
};
void main()
{
BST b;
b.insert(20);
}