Em đang viết hàm add_Node để thêm Node vào cây nhị phân nhưng bị lỗi không add Node được khi Node gốc Root khác NULL. Mn check giúp e với ạ:
void add_Node(Node * &root,int x)
{
Node *newNode=new Node;
newNode->data=x;
newNode->left=NULL;
newNode->right=NULL;
if(root==NULL)
{
root=newNode;
}
else
{
Node *g=root;
while(g!=NULL)
{
if(g->data>x)
{
g=g->left;
}
else if(g->data<x)
{
g=g->right;
}
}
g=newNode;
}
}
Và đây là toàn bộ code của bài ạ
#include<iostream>
using namespace std;
//Nhap vao cay nhi phan cac so nguyen
//Xuat ra man hinh cac phan tu cua cay nhi phan
struct Node
{
int data;
Node *left;
Node *right;
};
void khoi_tao_cay(Node *root)
{
root=NULL;
}
void add_Node(Node * &root,int x)
{
Node *newNode=new Node;
newNode->data=x;
newNode->left=NULL;
newNode->right=NULL;
if(root==NULL)
{
root=newNode;
}
else
{
Node *g=root;
while(g!=NULL)
{
if(g->data>x)
{
g=g->left;
}
else if(g->data<x)
{
g=g->right;
}
}
g=newNode;
}
}
void xuat_cay_nhi_phan(Node *root)
{
if(root ==NULL) return;
else
{
cout<<root->data;
xuat_cay_nhi_phan(root->left);
xuat_cay_nhi_phan(root->right);
}
}
int main()
{
Node *root=NULL;
for(int i=0;i<6;i++)
{
int a;
cin>>a;
add_Node(root,a);
}
xuat_cay_nhi_phan(root);
return 0;
}