【C语言报错】C2040间接寻址级别不同

错误写法

void BST_add(BST *bst,int e) {
	bst->root = lrnode_add(bst,bst->root, e);//lrnode_add方法定义在后面
}

//向以node为根的二分搜索树中插入元素e,递归算法
//返回插入新节点后二分搜索树的根
lrNode* lrnode_add(BST *bst, lrNode *node, int e) {
	if (node == NULL) {
		bst->size++;
		return create_lrNode(e);
	}
	if (e < node->e)
		node->left = lrnode_add(bst, node->left, e);
	else if (e > node->e)
		node->right = lrnode_add(bst, node->right, e);
	return node;
}

正确写法

//向以node为根的二分搜索树中插入元素e,递归算法
//返回插入新节点后二分搜索树的根
lrNode* lrnode_add(BST *bst, lrNode *node, int e) {
	if (node == NULL) {
		bst->size++;
		return create_lrNode(e);
	}
	if (e < node->e)
		node->left = lrnode_add(bst, node->left, e);
	else if (e > node->e)
		node->right = lrnode_add(bst, node->right, e);
	return node;
}

void BST_add(BST *bst,int e) {
	bst->root = lrnode_add(bst,bst->root, e);
}

 

你可能感兴趣的:(C,已解决,c语言)