创建二叉树的代码编译错误,求帮看看

C语言 码拜 8年前 (2017-05-03) 1441次浏览
//创建树
PBinTree createBinTree() {
	PBinTree pbt;
	pbt = (PBinTree)malloc(sizeof(BinTree));
	if (pbt != NULL) {
		*pbt = createBinTreeNode();
		return pbt;
	}
	else
		printf("failed!!\n");
}
//createTreeNode函数
PBinTreeNode createBinTreeNode() {
	PBinTreeNode pbtn;
	char ch;
	printf("请输入结点值:\n");
	scanf("%c", &ch);
	if (ch == "@")
		pbtn= NULL;
	else {
		pbtn = (PBinTreeNode)malloc(sizeof(struct BinTreeNode));
		if (pbtn != NULL) {
			pbtn->info = ch;
			pbtn->llink = createBinTreeNode();
			pbtn->rlink = createBinTreeNode();
		}
	}
		return pbtn;
}

这是代码的一部分编译时提示: error C2040: “createBinTreeNode”:“PBinTreeNode ()”与“int ()”的间接寻址级别不同。
看了半天找不到错误地方,求高手帮看看

解决方案

10

这些类型怎么定义的啊

20

双击错误提示,定位到具体位置。这里看不出有什么问题
1:检查能否有左右操作数类型不能匹配的情况
2:BinTreeNode在这个文件中能否是完全类型(能看到定义的)

10

*pbt类型和createBinTreeNode的返回值类型不一样吧;
感觉这个地方怪怪的。
本人认为你应该是pbt类型里的一个元素是PBinTreeNode类型的。
主要还是要看你的数据结构定义。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明创建二叉树的代码编译错误,求帮看看
喜欢 (0)
[1034331897@qq.com]
分享 (0)