在二叉搜索树中插入问题

时间:2019-04-17 06:21:17

标签: c++ binary-tree binary-search-tree dynamic-programming

我已经编写了用于在Binary Search Tree中插入及其遍历的代码。

icsk_accept_queue.qlen

在某些测试用例上无法正常工作。

例如,如果先插入15、25,然后插入35,然后遍历树,则仅打印15和25。

我无法在代码中找出问题所在。我的插入逻辑有什么问题?

1 个答案:

答案 0 :(得分:0)

让我们来看看行为-


  1. 您插入15。if (start == NULL)
    • 此检查将创建起始节点。现在有一个起始节点,其值为15,左右分别为NULL

  1. 您插入25。(temp->left != NULL) && (temp->right != NULL)
    • 这真是假的。
    • (val < temp->data)此检查将创建一个右节点。

  1. 您插入35。(temp->left != NULL) && (temp->right != NULL)
    • 仍然是错误的。
    • (val < temp->data)此检查将创建一个右节点(替换当前的右节点)。 哪个不对。

您需要在此处更正while循环条件。