void BSTree::insert(int newkey) { //todo ... } c++编写
时间: 2024-06-04 21:08:31 浏览: 126
void BSTree::insert(int newkey) {
if (root == nullptr) { // 如果树为空,则新节点成为根节点
root = new Node(newkey);
return;
}
Node* cur = root;
while (cur != nullptr) {
if (newkey < cur->key) { // 如果新插入节点的值小于当前节点的值,则往左子树寻找插入位置
if (cur->left == nullptr) { // 如果左子节点为空,则新节点成为左子节点
cur->left = new Node(newkey);
return;
}
cur = cur->left;
} else if (newkey > cur->key) { // 如果新插入节点的值大于当前节点的值,则往右子树寻找插入位置
if (cur->right == nullptr) { // 如果右子节点为空,则新节点成为右子节点
cur->right = new Node(newkey);
return;
}
cur = cur->right;
} else { // 如果新插入节点的值等于当前节点的值,则插入失败
return;
}
}
}
阅读全文