关于二叉排序树并中根遍历的算法,求大神帮帮我这只菜鸟,只有一行有代码bug
代码的第十二行错误五五,强制性转换又说no match for call to ‘(node)(void*)‘以下我所打的代码
#include "stdio.h"
#include "malloc.h"
struct node{
char data;
struct node *lchild,*rchild;
} bnode;
typedef struct node *blink;
blink add(blink bt,char ch)
{
if(bt==NULL)
{ bt=malloc(sizeof(bnode));
bt->data=ch;
bt->lchild=bt->rchild=NULL;
}
else
if(ch<bt->data)
bt->lchild=add(bt->lchild,ch);
else
bt->rchild=add(bt->rchild,ch);
return bt;
}
void inorder(blink bt)
{
if(bt)
{inorder(bt->lchild);
printf("%c",bt->data);
inorder(bt->rchild);
}
}
int main()
{
blink root=NULL;
int i,n;
char x;
scanf("%c",&n);
for(i=1;i<n;i++)
{
x=getchar();
root=add(root,x);
}
inorder(root);
printf("\n");
}
编译不成功的问题出错提示:
D:\程序设计\2021春\173.cpp In function 'node* add(blink, char)':
12 28 D:\程序设计\2021春\173.cpp invalid conversion from 'void*' to 'blink {aka node*}' [-fpermissive] 把 .cpp 改成 .c 试试
页:
[1]