Глядя на реализацию в Википедии, может показаться, что стандартный BST (несбалансированный) никогда не перестраивается во время вставки, и поэтому самый первый добавленный элемент всегда будет корневым. Это правильно? Если это так, не означает ли это, что есть вероятность того, что BST часто будет намного хуже, чем O (logN)?
Используя это как ссылку для рекурсивной вставки:
/* Inserts the node pointed to by "newNode" into the subtree rooted at "treeNode" */
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);
}