imafoool 2017-02-28 12:47 采纳率: 25%
浏览 917
已采纳

C语言关于二叉查找树的插入

 typedef struct binary_tree_
{
    int data;
    struct binary_tree_ *left;
    struct binary_tree_ *right;
}binary_tree;  //这里binary_tree = struct binary_tree_



binary_tree* create_tree(int data)  //创建一个根节点 
{
    binary_tree* root=NULL;
    root=(binary_tree*)malloc(sizeof(struct binary_tree_));
    root->data=data;
    return root;
} 



binary_tree* insert(int data,binary_tree *T)  
{
    if(T==NULL)
    {
        T=(binary_tree*)malloc(sizeof(struct binary_tree_));
        T->data=data;
        T->left=NULL;
        T->right=NULL;  
    }
    else if(data<T->data)
        T->left=insert(data,T->left);   
    else if(data>T->data)
        T->right=insert(data,T->right);
    return T;   
}



int main(void)
{
    binary_tree *root;
    binary_tree *root1;
    root=create_tree(3);
    root1=insert(2,root);
    printf("%d",root1->data);
}

这是我自己写的关于二叉查找树的插入代码。求解大神为什么我一运行就崩溃。。。

  • 写回答

2条回答 默认 最新

  • 伪造的时空 2017-03-01 01:29
    关注

    创建根节点时出错,没有为左右节点赋初值,导致在插入时无法申请空间,程序崩溃

    binary_tree* create_tree(int data)
    {
        binary_tree* root=NULL;
        root=(binary_tree*)malloc(sizeof(struct binary_tree_));
        root->data=data;
            //加上下面两行
          root->left=NULL;
          root->right=NULL;
        return root;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答