树 二叉树 B树

:是一类重要的非线性数据结构,是以分支关系定义的层次结构。

结点:由数据元素及若干指向子树的分支组成。

如果树的结点个数为0,则树为空树。

树相关术语

  1. 根结点:一个没有父结点(双亲结点)的结点,一棵树中最多有一个根结点。
  2. 叶子结点(leaf node):也叫终端结点,度为0的结点就是叶子结点,它位于树最深层,并且树只要非空,就一定存在叶子结点。
  3. 分支结点:度大于0的结点,显然除了叶子结点之外的结点都为分支结点,而且根结点也是分支结点。
  4. 结点的度(degree of node):结点的度指的是结点分支的个数。所有结点中最大的度,就是树的度
  5. 兄弟结点:拥有相同双亲结点的所有孩子结点叫做兄弟结点。同一双亲的孩子结点。
  6. 堂兄弟结点、祖先节点、子孙结点
  7. 路径:从一个结点到另一个结点之间的边和结点构成路径。
  8. 结点的层次:也称结点的深度(depth):结点的层次为从结点到根结点的路径中边的条数,并且认为根结点的层次为0,因为根结点到自身的路径中边的条数为0(但也有一些教科书假设根结点的层次为1,这个时候要注意书中相应的说明)。
  9. 树的深度:结点中的最大深度(或最大层次)。
  10. 结点的高度(height of node):从一个结点出发,一直到它的叶子结点的最大路径中的边的条数,就是该结点的高度,叶子结点的高度认为是0。高度与深度不同,高度的描述是自下向顶的,而深度是自顶向下的,同一层次的结点的高度是可以不同的
  11. 树的高度:树的高度就是根结点的高度。
  12. 森林:m(m>=0)棵互不相交的树的集合。

二叉树

每个节点最多含有两个子树的树称为二叉树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。

满二叉树

除最后一层无任何子节点外,每一层上的所有结点都有两个子结点。也可以这样理解,除叶子结点外的所有结点均有两个子结点。节点数达到最大值,所有叶子结点必须在同一层上。

完全二叉树

若设二叉树的深度为h,除第 h 层外,其它各层 (1~(h-1)层) 的结点数都达到最大个数,第h层所有的结点都连续集中在最左边,这就是完全二叉树。

二叉查找树

又称为是二叉排序树(Binary Sort Tree)或二叉搜索树。二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:

  1) 若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
  2) 若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;
  3) 左、右子树也分别为二叉排序树;
  4) 没有键值相等的节点。

平衡二叉树

平衡二叉树(Balanced Binary Tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用算法有红黑树、AVL树等。

B树

又叫平衡多路查找树。B树的原英文名称为B-tree,而国内很多人喜欢把B-tree译作B-树,其实,这是个非常不好的直译,很容易让人产生误解。而事实上是,B-tree就是指的B树。特此说明。

 

https://www.cnblogs.com/sxkgeek/p/9349931.html

posted @ 2020-01-15 13:41  wpf2018  阅读(278)  评论(0编辑  收藏  举报