【发布时间】:2021-12-02 09:01:07
【问题描述】:
我的二叉树设置如下:
`
我也像这样初始化BT的第一个节点:
`
到目前为止一切正常。但是,当我尝试插入我的 BT 时,我不断收到意外行为。我的插入函数是这样的。
`
但是,当我从 main 函数运行代码并尝试插入 BT 时,第一个节点显示得很好,但第二个节点变成了一个大而奇怪的数字。当我在调试器中运行它时,它会显示我期望的数字,但这不是打印出来的数字。这是我的主要方法。
`
问题出在我的插入函数中,但我不确定出了什么问题,因为当我通过调试器运行它时,我得到了预期值 5 和 6。
【问题讨论】:
-
插入后缺少返回
-
malloc(sizeof(struct Node*))应该是malloc(sizeof(struct Node))。 -
为什么
initializeTree()采用Node参数而不仅仅是数据? -
如果
insert()会在您使用NULL根插入时创建根节点,那您为什么还需要initializeTree()? -
@Barmar 是的,我刚刚意识到这一点。你完全正确!
标签: c recursion binary-search-tree dynamic-memory-allocation function-definition