给出以下用于将元素插入BST的算法:
void InsertNode(Node* &treeNode, Node *newNode)
{
if (treeNode == NULL)
treeNode = newNode;
else if (newNode->key < treeNode->key)
InsertNode(treeNode->left, newNode);
else
InsertNode(treeNode->right, newNode);
}
此算法在O(n)
最坏情况下运行。
在最坏的情况下,是否可以使用复杂度较低但O(n)
的算法将元素插入BST?
备注1 :这不是作业(为即将到来的考试做准备)
备注2 :不使用AVL
树
谢谢
答案 0 :(得分:6)
插入等同于搜索操作。显然,如果您的树不平衡,最坏的情况将始终是链接列表形式的树。所以没有办法避免O(n)。