Проблемы с созданием дерева в C - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь создать дерево в C (я знаю, как создать дерево в java, но так как я учу C, я подумал, что это будет отличным способом действительно изучить указатели), но я я не получаю вывод, когда я печатаю данные root.

Это мой код:

#include<stdio.h>
typedef struct Node
{
    struct Node *right;
    struct Node *left;
    int data;
} Node;

Node* create_node(int data);



Node* create_root(int nodedata)
{
    Node* root;
    root->data = nodedata;


    return root;
}

int main()
{
    Node* root = create_root(5);
    printf("%d", root->data);

    return 0;
}

Проблема в том, как я связываю узлы с левым и правым указателями или как я возвращаю функцию на указатель узла?

1 Ответ

0 голосов
/ 03 февраля 2020

Вы должны выделить память перед использованием.

Node* create_root(int nodedata)
{
    Node* root = calloc(1, sizeof(Node));
    root->data = nodedata;


    return root;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...