zoukankan      html  css  js  c++  java
  • 数据结构 | 平衡二叉树与平衡因子

    任一结点的左子树和右子树的深度之差不超过1的树称为平衡二叉树。

    可通过计算非叶子结点的平衡因子来判断该树是否为平衡二叉树(叶子节点的平衡因子均为0)。

    平衡因子 = 左子树深度 - 右子树深度

    这里有必要辨析一下结点和树的度;结点的层次、深度;结点和树的高度(深度)这几个名词。

    节点的度:节点拥有的子结点个数。

    树的度:树中结点的最大度数。

    结点的层次:从树根开始定义,根结点为第0层(有些教材中将根结点定位为第1层),它的子结点为第1层,依次类推。

    结点的深度:从根结点开始(其深度为0)自顶向下逐层累加的。下图中,结点B的深度是1,结点D的深度是2,结点H的深度是3。

    结点的高度:从叶结点开始(其高度为0)自底向上逐层累加的。下图中,结点C的高度是2,根结点A的高度是3。

    树的高度(又称深度):树中结点的最大层数。下图树的高度为3。

    平衡二叉树

    图1. 平衡二叉树
    根结点A的平衡因子 = 结点A的左子树的深度 - 结点A的右子树的深度 = 2 - 3 = -1
    结点B的平衡因子 = 结点B的左子树的深度 - 结点B的右子树的深度 = 1 - 1 = 0
    结点C的平衡因子 = 结点C的左子树的深度 - 结点C的右子树的深度 = 2 - 1 = 1
    
  • 相关阅读:
    .net Api 接口调用 增删改查
    自学Java基础知识第十七天
    自学Java基础知识第十六天
    自学Java基础知识第十五天
    自学Java基础知识第十四天
    自学Java基础知识第十三天
    自学Java基础知识第十二天
    自学Java基础知识第十一天
    自学Java基础知识第十天
    自学Java基础知识第九天
  • 原文地址:https://www.cnblogs.com/JasonCeng/p/13061497.html
Copyright © 2011-2022 走看看