我想创建 BST 的可视化,但是我在网上找到的每个示例在仅插入 7 个或更少的值后都会停止。假设我正在执行以下序列:
插入(5),插入(7),插入(9),插入(8),插入(3),插入(2),插入(4),插入(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 并且我得到 insert(3),它将在 8 的左侧添加 3,因为它将 3 与节点 9 进行比较,看到小于点已经被8,然后以 8 作为比较的节点重新运行插入,并将 3 作为 8 的左子节点。但这只会创建一种列表。
谢谢。