zoukankan      html  css  js  c++  java
  • 树 二叉树 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

  • 相关阅读:
    提高php代码效率的几点
    jquery各种操作复选框(全选、全不选、自动勾选、反选……)
    封装PDO单例模式类
    Git常用命令
    简化版的sqlserver分页
    Sql Server 数据分页
    Linux 下动态链接库搜索路径问题
    mysqlperformanceblog
    vim 退格键(backspace)不能用
    Linux vi/vim 编辑命令总结
  • 原文地址:https://www.cnblogs.com/xhongqing/p/12097873.html
Copyright © 2011-2022 走看看