老师您好,学完了二分搜索树,我自己学网上找了一下相关的树的知识。看到网上对于树的一些定义,我感觉有点不对,但是看到很多人都是这么说(不知是什么时候开始这样传的),比如平衡二叉树(Balanced BinaryTree)又被称为AVL树。我先讲我的理解,不知对不对,如果我说的不对,可以帮我指正吗?
首先我的理解是,将平衡二叉树称做AVL树是不对的,平衡树是任意节点的子树的高度差都小于等于1。平衡树不只是有AVL树,B树,红黑树也是平衡树。而且二叉树不能不只是有二叉搜索树,还可以有二叉树不是搜索树。我不知道他们这些定义是如何来的,而且好像传了很多。
我对树分类如下
二叉树(Binary tree)指树中节点的度不大于2的有序树。
二叉搜索树(Binary Search Tree)在二叉树的基础上进一步定义。
平衡树(Balance Tree)是任意节点的子树的高度差都小于等于1。
AVL树(Adelson-Velsky and Landis Tree)在二叉搜索树和平衡树的基础定义之上定义的树。
红黑树(Red–black tree)在二叉搜索树和平衡树和AVL树的基础定义之上定义的树。
AVL树和红黑树可以说都是平衡二叉搜索树,但是不能反过来说平衡二叉树就是AVL树,他们具有继承关系。
AVL树和红黑树都是自平衡的二叉搜索树。他们只是自平衡的二叉搜索树的一种。