使用三重指针插入二叉树

时间:2019-03-11 11:45:23

标签: c pointers data-structures binary-tree

请找到上述主题的代码。我正在尝试使用三重指针创建/插入二叉树,但是在insert(&(**tree)->lchild),data)函数中遇到了问题,尤其是在struct node { int data; struct node* lchild; struct node *rchild; int count; int visited; }; void sub_arry(int *arr1,int *arr2,struct node **tree); void insert(struct node ***tree,int data); int main() { int arr1[]={2,1,2,5,7,1,9,3,6,8,8}; int arr2[]={2,1,8,3}; struct node *tree =NULL; sub_arry(arr1,arr2,&tree); return 0; } void sub_arry(int *arr1,int *arr2,struct node **tree) { int i; int n = sizeof(arr1)/sizeof(arr1[0]); int m = sizeof(arr2)/sizeof(arr2[0]); for(i=0;i<n;i++) { insert(&tree,arr1[i]); } } void insert(struct node ***tree,int data) { struct node *root; if (**tree == NULL) { root = (struct node *)malloc(sizeof(struct node)); root->data = data; root->lchild = NULL; root->rchild = NULL; root->count = 1; **tree = root; return; } if(data == (**tree)->data) (**tree)->count += 1; else if(data > (**tree)->data) insert(&((*(*tree))->rchild),data); //rchild is of struct node* else insert(&(**tree)->lchild,data); //lchild is of struct node * return; } 中。

请让我知道如何绕过此问题。

{{1}}

0 个答案:

没有答案