0
これはバイナリツリーを実装するためのコードです。プッシュ機能では、エラーが発生します.p-> rightのアドレスはroot-> rightとは異なります。私はpにrootの価値を割り当てました。誰かがそれを私に説明してください。バイナリツリーのプッシュ機能でエラーが発生しました
#include<iostream>
using namespace std;
struct node{
int value;
node *right,*left;
node(int value){
this->value=value;
right=NULL;
left=NULL;
}
};
class tree{
public:
node *root;
tree(){
this->root=NULL;
}
tree(int value){
root=new node(value);
}
void push(int value){ //To insert into the binary tree
if(root==NULL){
root=new node(value);
return ;
}
node *p=this->root;
cout<<root<<endl<<p<<endl;
while(p!=NULL){
if(value>=p->value){
p=p->right;
}
else if(value<p->value){
p=p->left;
}
}
p=new node(value);
}
};
int main(){
tree t(30);
t.push(20);
}
理解できません –
ここのノードはオブジェクトです。あなたは左と右のポインタを割り当てていません。 – RJMIMI38
私はそれらにNULLを割り当てました。私が必要とするときに、それらを特定の値に初期化します。 –