gpt4 book ai didi

c - 红黑树——初始化

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:27:28 24 4
gpt4 key购买 nike

如何在 C 中正确初始化红黑树?

结构:

typedef struct Node{
int key;
struct Node *left;
struct Node *right;
struct Node *parent;

enum {RED, BLACK} color;
}node;

typedef struct RBtree{
struct Node *root;
struct Node *nil;
}rbtree;

主要功能:

int main(){
rbtree *tree;
init_rbtree(&tree);
}

初始化函数:

void init_rbtree(rbtree **t){
(*t)->root = NULL;

node *n = (node*)malloc(sizeof(node));
if(n != NULL){
n->color = BLACK;
(*t)->nil = n;
}
}

我一运行这段代码,程序就崩溃了。

最佳答案

您需要为*t分配内存才能使用它。

void init_rbtree(rbtree **t) {
*t=malloc(sizeof(rbtree));

if (*t==NULL) {
//handle error
}
else {
(*t)->root = NULL;

node *n = malloc(sizeof(node));
if(n != NULL){
n->color = BLACK;
(*t)->nil = n;
}
}
}

关于c - 红黑树——初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22925869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com