【发布时间】:2018-09-13 13:32:31
【问题描述】:
#include <iostream>
using namespace std;
class Node {
public:
int data;
Node *left, *right;
Node()
{
data = NULL;
left = right = NULL;
}
};
Node* insertBST(Node* root, int value)
{
if (root == NULL) {
root->data = value;
root->left = root->right = NULL;
}
if ((root->data) > value)
insertBST(root->left, value);
if ((root->data) < value)
insertBST(root->right, value);
}
Node* printBST(Node* root)
{
if (root != NULL) {
printBST(root->left);
cout << "\n" << root->data;
printBST(root->right);
}
}
int main()
{
Node* root = new Node;
insertBST(root, 30);
insertBST(root, 20);
insertBST(root, 40);
insertBST(root, 70);
insertBST(root, 60);
insertBST(root, 80);
printBST(root);
}
以上是我为实现二叉搜索树而编写的代码。当我执行它时,程序停止响应并关闭。我尝试从 pythontutor.com 获得帮助,但我无法解决它。我应该怎么做才能让它正常运行? 这里是它停止的地方:Click to see
感谢任何帮助,我是编写程序的新手。
【问题讨论】:
-
我们需要处理一个错误。如果您在调试器中运行它,您应该会收到一条实际的错误消息。
-
我无法解决错误。
-
insertBST从不分配新节点。第二次插入应该给你一个段错误。 -
@meowgoesthedog 是的,第二次插入出现错误。如何处理?
-
阅读 BST 插入并重试。看来你还没有完全理解。
标签: c++ data-structures