如何创建二叉树(不是二叉搜索树)

How to create a binary tree (not binary search tree)

本文关键字:搜索树 二叉树 创建 何创建      更新时间:2023-10-16

请告诉我如何创建二叉树。我在谷歌上搜索,但到处都是二叉搜索树。这是我的代码。

bool createTree(node* Tree,int d)
{
    bool ret_val=FALSE;
    if(Tree->d==-1)
    {
        Tree->d=d;
        return TRUE;
    }
    else
    {
        node* temp=(node*)malloc(sizeof(node*));
        if (temp==NULL)
            return FALSE;
        temp->l=NULL;
        temp->r=NULL;
        temp->d=d;
        if(Tree->l==NULL)
        {
            Tree->l=temp;
            return TRUE;
        }
        else if(Tree->r==NULL)
        {
            Tree->r=temp;
            return TRUE;
        }
        else
        {
            ret_val=createTree(Tree->l,d);
            if(ret_val)
                return TRUE;
            else
                return createTree(Tree->r,d);
        }
        return FALSE;
    }
}

执行后,您可以看到值被分配给左树,并且它继续移动到树的左侧部分。请帮我填一下二叉树

这个错误

node* temp=(node*)malloc(sizeof(node*));

应该是

node* temp=(node*)malloc(sizeof(node));

但是在c++代码中最好写

node* temp = new node;

更简单,所以你不太可能出错