dreamlike 发表于 2021-5-8 22:39:51

关于二叉排序树并中根遍历的算法,求大神帮帮我这只菜鸟,只有一行有代码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]

人造人 发表于 2021-5-8 23:08:50

把 .cpp 改成 .c 试试
页: [1]
查看完整版本: 关于二叉排序树并中根遍历的算法,求大神帮帮我这只菜鸟,只有一行有代码bug