0
我想要创建BST的可视化,但每插入7个或更少的值后,我在网上找到的每个示例都会停止。假设我正在执行以下序列:插入BST
insert(5),insert(7),insert(9),insert(8),insert(3),insert(2),insert(4),insert (6),插入件(10)。
直到衬套(6),我结束了:
我的主要问题是:我在哪里何去何从?添加到我最左边的叶子还是添加到我的“最低”叶子?
另外:根据维基百科的插入的代码是:
void insert(Node* node, int value) {
if (value < node->key) {
if (node->leftChild == NULL)
node->leftChild = new Node(value);
else
insert(node->leftChild, value);
} else {
if(node->rightChild == NULL)
node->rightChild = new Node(value);
else
insert(node->rightChild, value);
}
}
但根据这一点,一旦我在8,我得到插入(3),这将增加3至左8,因为它将比较3与节点9,看到小于点已经被8取代,然后重新运行插入,其中8是节点,并且将3放置为8的左侧子节点。但是,这个只会创建一个列表。
谢谢。
事实上,它将是4的左边孩子。 –
你需要允许重复的值吗?如果是这样,考虑为每个节点添加一个计数器,以跟踪该值的出现次数,而不是在您的树中有多个具有该值的“节点”。 – fvrghl