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

时间:2013-04-16 10:38:21

标签: c++ c

请告诉我如何创建二叉树。我搜索了谷歌,但我发现二进制搜索树的每个地方。我的代码。

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;
    }
}

执行后,您可以看到该值已分配给左侧树,并且它会一直显示在树的左侧部分。        请帮我填写二叉树。

1 个答案:

答案 0 :(得分:1)

这个错误的

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

应该是

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

但是在C ++代码中,编写

会更好
node* temp = new node;

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