红黑树中C的简单结构定义

问题描述 投票:0回答:1

我多年来没有使用C语言,现在我再次需要它。我正在尝试构建一棵红黑树,但由于一开始缺少关于“结构”的信息,所以我一开始陷入困境。

请看一下我的“结构”声明,它们很简单。这是Red_black_tree.c中包含的头文件。

 #define BLACK 0 //defalut color
#define RED 1 //

struct Node {  //create a black node by default, to have a red one look at "create_red_node"
    struct Node *left = NULL;
    struct Node *right= NULL;
    int key = 0;
    int value = 0;
    char color = BLACK;
};

struct Root_t {
    struct Node* Root;
};

struct Node* create_node () {
    struct Node* black = (Node*) malloc (sizeof(Node));
    return black;
}

struct Node* create_red_node () {
    struct Node* red = create_node ();
    red->color=RED;
    return red;
}

Root_t* create_tree () {
    struct Root_t* fake=(Root_t*) malloc (sizeof(Root_t));
    struct fake->Root->left=create_red_node ();
    struct fake->Root->right=create_red_node ();
    return fake;
}

我用“ gcc Red_black_tree.c -o RBTree编译”。GCC表示类似“预期”;在声明列表末尾” 7次,或“必须使用'struct'标记来引用类型...”,“预期标识符...”。您怎么看,创建RBTree很好吗?

我多年来没有使用C语言,现在我再次需要它。我正在尝试构建一棵红黑树,但由于一开始缺少关于“结构”的信息,所以我一开始陷入困境。看看我的“ ...

c gcc struct binary-search-tree red-black-tree
1个回答
0
投票

在C中,您无法在定义struct的成员时进行分配

© www.soinside.com 2019 - 2024. All rights reserved.