首页 新闻 搜索 专区 学院

二叉树创建时参数出了问题,请大佬赐教

0
[待解决问题]

废话不多说,本人用的VS2017,
创建树的函数只这样的:

void CreateBTree(BTNode * & b, char * str)
{
BTNode * St[50], * p = NULL;
int top = -1,k, j = 0;
char ch;
b = NULL;
ch = str[j];
while (ch != '\0;')
{
switch (ch)
{
case '(':top++;St[top] = p;k = 1;break;
case ')':top--;break;
case ',':k = 2;break;
default:p = (BTNode *)malloc(sizeof(BTNode));
p->data = ch;
p->lchild = p->rchild = NULL;
if (b == NULL)
b = p;
else
{
switch (k)
{
case 1:St[top]->lchild = p;break;
case 2:St[top]->rchild = p;break;
}
}
}
j++;
ch = str[j];
}
}

主函数是这样的

#include<iostream>

include"btree.h"

using namespace std;
int main()
{
BTNode * b;
cout << "2";
CreateBTree(b, "A(B(D(,G)),C(E,F))" );
cout << "2";
PostOrder(b);
cout << "1";
return 1;
}
在主函数的CreateBTRree(b,"A(B(D(,G)),C(E,F))")处报错,内容是这样的:
“const char ”类型的实参与“char ”类型的形参不兼容

小纠结:
为什么我的出错了, 我同学的2010版的没问题!!! \(.O_O.)|||

emmmmm

foxer,z的主页 foxer,z | 菜鸟二级 | 园豆:202
提问于:2018-12-02 23:04

好吧,至今不知道是什么原因,我把同学的代码靠过来,再按我的逻辑排了一遍,在vs里,运行成功了。另外,vscode运行再运行这个,失败,好像第一次运行同学的代码成功了,但是我的修改只是把部分内容写到了头文件里,可能是头文件引用的地方出问题了。找到原因再更新吧。

Foxer 1年前
< >
分享
所有回答(1)
0

你把 char * str 换成string str试试

Shendu.CC | 园豆:1914 (小虾三级) | 2018-12-03 09:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册