【发布时间】:2020-07-01 23:12:41
【问题描述】:
我正在尝试将一个节点插入到 bst 中,到目前为止我有以下内容
typedef struct _StoreNode *Connect;
typedef struct _StoreNode {
NumberFrequency data;
Connect left;
Connect right;
} StoreNode;
Struct _StoreRep{
Connect tree;
};
static Connect newConnect(char *w) {
Connect n = malloc(sizeof(*n));
n->data.frequency = 1;
n->data.number = (char *)malloc(strlen(w) * sizeof(char));
strcpy(n->data.number, w);
n->left = NULL;
n->right = NULL;
return n;
}
NumberFrequency * insert(Connect n, char *w)
{
if (n == NULL)
return &newConnect(w)->data;
else if (strcmp(n->data.number,w) > 0)
return insert(n->left, w);
else if (strcmp(n->data.number,w) < 0)
return insert(n->right, w);
else
n->data.frequency = n->data.frequency+1;
return &n->data;
}
NumberFrequency *DictInsert(Dict d, char *w){
return insert(d->tree, w);
}
我正在尝试返回指向要添加到 BST 中的项目的指针。没有抛出错误,但没有任何反应。非常感谢您的帮助!
【问题讨论】:
-
您没有将新节点与前一个节点连接起来。您只是在创建一个节点,但没有将其连接到根节点。
标签: c binary-search-tree