是否可以在BST中插入复杂度低于O(n)最坏情况的元素?

时间:2012-06-27 15:53:03

标签: algorithm tree binary-tree binary-search-tree

给出以下用于将元素插入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

谢谢

1 个答案:

答案 0 :(得分:6)

插入等同于搜索操作。显然,如果您的树不平衡,最坏的情况将始终是链接列表形式的树。所以没有办法避免O(n)。