我的代码有两个错误,我无法弄清楚原因。我试图将一个节点插入树中,但它不允许我将左右节点设置为整数值。请帮助,我的计划的这部分将在星期六到今天是星期三。
void Bst::Insert(TreeNode *&node, int item) {
if (item < node->data) {
if (node->left == NULL)
node->left = item;
else
Insert(node->left, item);
}
if (new_node->data > root->data) {
if (node->right == NULL)
node->right = item;
else
Insert(node->right, item);
}
}
答案 0 :(得分:0)
你的代码存在很多问题,我在下面写了c ++代码应该是什么样子,你可能想要调查一些小错误。
TreeNode * Bst::Insert(TreeNode *node, int item) {
if (node == NULL) {
node = (struct TreeNode*)malloc(sizeof(struct TreeNode));
node->data = item;
node->left = NULL;
node->right = NULL;
}
else if (item < node->data) {
node->left = Insert(node->left, item);
}
else if (item > node->data) {
node->right = Insert(node->right, item);
}
return node;
}
我编辑了我认为可能有用的更改,您可能还想在标题中包含malloc.h。