-1

これは単純に思えるかもしれませんが、なぜ何をしても thisNode が常に NULL なのかを理解しようと、ここ数時間頭を悩ませてきました。これは null であるため、実際には何もツリーに追加されないことを意味します。何かアイデアはありますか?ああああ

struct node *tra(struct node * start, Type input) 
{
    struct node * thisNode = start;

    if (thisNode == NULL)
        return thisNode;
    else 
    {
        Type current = thisNode -> el;

        if (strcmp(input, current) > 0)
            return tra(thisNode -> right, input);
        else if (strcmp(input, current) < 0)
            return tra(thisNode -> left, input);
        else
        return thisNode;
    }
}

Ta insert(Type input, Ta ta) 
{
    if ((find(input, ta)) == FALSE) 
    {
        struct node *newEl = tra(ta -> head, input);
        newEl = (struct node*)malloc(sizeof(struct node));
        newEl -> el = input;
        newEl -> left = NULL;
        newEl -> right = NULL;
    }

    return ta;
}

Boolean find(Type input, Ta ta) 
{
    if (tra(ta -> head, input) == NULL)
        return FALSE;
    else
        return TRUE;
}
4

2 に答える 2