二叉树的概念和基本术语

狂风中的少年 提交于 2020-04-01 08:33:04

二叉树简单说就是有两个子树的树

 

1.种类及概念:

  二叉树是每个结点最多有两个子树的树结构。

  完全二叉树:除最后一层外,若其余层都是满的,并且最后一层或者是满的,或者是在右边缺少连续若干节点。

  满二叉树:每一层上的节点数都是最大节点数,深度为k,且有2^k-1个节点。

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

  森林:不考虑连通性,允许图中有多个连通分量的结构。

    

    (1)空二叉树:图(a)

    (2)只有一个根结点的二叉树:图(b)

    (3)只有左子树:图(c)

    (4)只有右子树:图(d)

    (5)完全二叉树:图(e)

 

2.定义及性质:

  二叉树常被用于实现二叉查找树和二叉堆。

  二叉树是一个连通的无环图,并且每一个顶点的度不大于3。有根二叉树还要满足根结点的度不大于2。有了根结点之后,每个顶点定义了唯一的父结点,和最多2个子结点。

  二叉树不是树的一种特殊情形,树和二叉树有两个主要差别:

    1. 树中结点的最大度数没有限制,而二叉树结点的最大度数为2

    2. 树的结点无左、右之分,而二叉树的结点有左、右之分。

 

3.其他术语:

子树:通常被称作“左子树”(left subtree)和“右子树”(right subtree);

根结点(root):也叫树根,所有非空的二叉树中,都有且仅有一个根结点。它是同一棵树中除本身外所有结点的祖先,没有父结点。

树的结点(node):包含一个数据元素及若干指向子树的分支;

孩子结点(child node):结点的子树的根称为该结点的孩子;

双亲结点:B 结点是A 结点的孩子,则A结点是B 结点的双亲;

兄弟结点:同一双亲的孩子结点;

堂兄结点:位于同一层的,并且父节点之间是兄弟结点的结点

祖先结点: 从根到该结点的所经分支上的所有结点;

子孙结点:以某结点为根的子树中任一结点都称为该结点的子孙;

结点层:根结点的层定义为1;根的孩子为第二层结点,依此类推;也叫结点的层次或结点的深度;

树的深度(depth):树中最大的结点层,也叫结点的最大层次;

结点的高度(height of node):高度与深度不同,高度的描述是自下向顶的;

路径(path)和路径长度:从结点n1到nk的路径为一个结点序列n1,n2,...,nk,ni是ni+1的父结点。路径所包含边的个数为路径的长度;

结点的度(Degree):拥有子结点(子树)的数量;

树的度: 选取所有结点中最大的度;

叶子结点:也叫终端结点,是度为 0 的结点。位于树最深层,并且树只要非空,就一定存在叶子结点

分枝结点:度不为0的结点。除了叶子结点之外的结点都为分支结点,而且根结点也是分支结点

有序树:子树有序的树,如:家族树;

无序树:不考虑子树的顺序。

【注:参考:https://blog.csdn.net/weixin_41133154/article/details/80027285

  https://baike.baidu.com/item/%E4%BA%8C%E5%8F%89%E6%A0%91/1602879?fr=aladdin】

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!