Binary Search Trees have worst case performance for the symbol table operations - put and get - the same as for a linked list.
To guarantee these operations have order of growth log(N), we need to keep the trees balanced.
Keeping the tree balanced guarantees that the paths have length proportional to log(N).
Both put and get must traverse one path and so traversing a path will cost at most log(N) operations.
But we have to add to this the cost of rebalancing.
So the cost of keeping the tree balanced must be small so that the order of growth of put and get remains log(N).