Despite the different structure of the AVL and B-tree, as pointed out by Conrad, the use of AVL and B-tree is also different, I think. The B-tree is commonly used for indexing. The purpose of using the B-tree is to reduce disk I / O, while AVL-tree data is often completely stored in memory, and not partially in memory, partially on disk, such as the B-tree. The purpose of the AVL tree is to avoid the appearance of a tree of branches / right branches in some extreme situation providing the ideal complexity of O (logn) time when performing a search operation.
source share