【发布时间】:2014-04-21 06:00:59
【问题描述】:
我正在尝试将存储 INT 的预先编写的 BST 更改为可以存储字符串的 BST。
据我所知,我的代码应该可以工作,但是当我尝试打印树的内容时,它似乎总是为空(树不会尝试打印,因为我提供给它的节点显然是空的)。
从其他类似的问题中,我看到它可能与我的插入工作方式以及节点中的值未正确分配有关。无论如何,我会发布我的插入代码,看看我们如何进行。
我的节点定义为:
typedef struct node *node_ptr;
struct node
{
char data_item[7];
node_ptr left;
node_ptr right;
};
以及插入功能:
node_ptr insert(char *n, node_ptr tree)
{
if(!tree)
{
tree = (node_ptr) malloc(sizeof(struct node));
strcpy(tree->data_item, n);
tree->left = tree->right = NULL;
}
else if(strcmp(tree->data_item, n) < 0)
{
tree->left = insert(n, tree->left);
}
else if(strcmp(tree->data_item, n) > 0)
{
tree->right = insert(n, tree->right);
}
return tree;
}
【问题讨论】:
标签: c string binary-search-tree