ウィキペディアの実装を見ると、標準の 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);
}