C语言程序有错误error C2440: 'initializing' : cannot convert from 'void *' to 'struct BTreeNode *'

#include<stdio.h>#include<stdlib.h>#defineQueueMaxSize20//定义队列数组长度#defineStackMaxSize... #include<stdio.h>
#include<stdlib.h>
#define QueueMaxSize 20 //定义队列数组长度
#define StackMaxSize 10 //定义栈数组长度
typedef int ElemType;
struct BTreeNode
{
ElemType data;
struct BTreeNode* left;
struct BTreeNode* right;
};
void Insert1(struct BTreeNode** BST, ElemType x)
{
if (*BST==NULL) //在为空指针的位置链接新结点
{
struct BTreeNode* p = malloc(sizeof(struct BTreeNode));
p->data = x;
p->left = p->right = NULL;
*BST = p;
}
else if (x < (*BST)->data) //向左子树中完成插入运算
Insert1(&((*BST)->left), x);
else
Insert1(&((*BST)->right), x); //向右子树中完成插入运算
}
void CreateBSTree(struct BTreeNode** BST, ElemType a[], int n)
{
int i;
*BST = NULL;
for (i = 0; i < n; i++)
Insert1(BST, a[i]);
}
void PrintBTree_int(struct BTreeNode* BT)
{
if (BT != NULL)
{
printf("%d", BT->data); //输出根结点的值
if (BT->left != NULL || BT->right != NULL)
{
printf("(");
PrintBTree_int(BT->left); //输出左子树
if (BT->right != NULL)
printf(",");
PrintBTree_int(BT->right); //输出右子树
printf(")");
}
}
}
void main()
{
int x, *px;
ElemType a[10] = {30,50,20,40,25,70,54,23,80,92};
struct BTreeNode* bst = NULL;
CreateBSTree(&bst, a, 10);
printf("建立的二叉搜索树的广义表形式为:\n");
PrintBTree_int(bst);
printf("\n");
printf("输入待插入元素值:");
scanf(" %d", &x);
Insert1(&bst, x);
printf("操作后的二叉搜索树的广义表形式为:\n");
PrintBTree_int(bst);
printf("\n");
}
展开
 我来答
匿名用户
2013-12-14
展开全部
struct BTreeNode* p = (struct BTreeNode*)malloc(sizeof(struct BTreeNode));
//改成这样就行了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式