在main中,我创建了树: TreeNode * bst = malloc(sizeof(TreeNode));
然后将其传递给树创建函数,以及要输入的int值列表;
void thisFunc(TreeNode** root, const int * elements[], const int count){
const int * test = *elements;
TreeNode * temp;
for (int i=0; i<count; i++){
temp = malloc(sizeof(TreeNode));
temp->left = temp->right = NULL;
temp->data = test[i];
sort(root, temp);
}
}
据我所知,节点创建时没有错误,我怀疑问题出在我的插入函数中:
void sort(TreeNode** root, TreeNode * temp) {
// are we putting our node in here?
if (!(*root)){
*root = temp;
printf("ROOT: %i \n", (*root)->data);
return;
}
if (temp->data <= (*root)->data) {
sort(&(*root)->left, temp);
}
else if (temp->data > (*root)->data) {
sort(&(*root)->right, temp);
}
}
我尝试打印出数据值,看它是否最初分配0,但它似乎不是。
任何人都可以看到这棵树创造的错误吗?