【记录笔记:树】

1.树的基本概念

树(Tree)是由n(n>=0)个节点组成的有限集合(树中元素通常称为结点)。
n=0的树称为空树;
n>0的树T由以下两个条件约定构成:

有一个特殊的结点称为根(root)结点,它只有后继节点,没有前驱节点。
除根结点之外的其他结点分为m(0<=m<n)个互不相交的集合,其中每一个集合也都具有树结构,称为根的子树。

2.树的相关术语

树中有许多相关的术语,下面来一一了解:

结点: 结点是树的基本单位,树是由结点组成的,结点之间具有层次关系的非线性结构。结点中包含一个数据元素及指向其他分支信息。
度: 结点的度(degree)是结点所拥有的子树的棵数。度为0的结点称为叶子结点(leaf),又称终端节点。一棵树的度是指各结点度的最大值。
结点层次: 结点的层次属性反映结点处于树中的层次位置。约定根节点的层次为1,其他层次是其父母结点的层次加一。
树的高度: 树的高度或称树的深度,是指树中结点的最大层次数。
有序树、无序树: 在树的定义中,如果结点的子树之间没有次序,可以交换位置,称为无序树,简称树。如果结点子树之间是有次序的,不能交换顺序,则称该树为有序树。
森林: 森林是由m棵互不相交的树的集合。给森林加上一个根结点就变成一棵树,将树的根结点删除就变成森林。
孩子结点: 一个结点的直接后继称为该结点的孩子结点。
父母结点: 一个结点的直接前驱称为该结点的父母节点。
祖先结点: 一个结点从根节点到该结点路径上的所有结点。
子孙节点: 一个结点的直接后继及间接后继。
兄弟节点: 同一父母结点的孩子结点之间互称为兄弟节点。
前辈节点: 层号比当前结点小的结点。
后辈结点: 层号比当前结点大的结点。

3.二叉树

二叉树(Binary Tree)是n(n>=0)个结点组成的有限集合,n=0时称为空二叉树;n>0的二叉树由一个根节点和两颗互不相交的、分别成为左子树和右子树的二叉树构成。二叉树也是递归定义的。
树中的相关术语在二叉树中也是适用的。

二叉树的性质

若根节点层次为1,则二叉树第i层最多有2^i-1个结点。
在高度为h的二叉树中,最多有(2^h)-1个结点。
设一颗二叉树的叶子节点数为n0,2度结点数为n2,则n0=n2+1。
一颗具有n个结点的完全二叉树,其高度为log2n向下取整再加一。
一个具有n个结点的完全二叉树,对序号为i的结点有:
1)若i=0,则该结点为根节点,如i>0,则该结点的父母结点序号为(i-1)/2向下取整;
2)若2i+1<n,则i的左孩子结点序号为2i+1,否则无左孩子;
3)若2i+2<n,则i的右孩子结点序号为2i+2,否则无右孩子。

二叉树的遍历
前序遍历(先序遍历):先访问根节点,遍历左子树,遍历右子树;
中序遍历:遍历左子树,访问根节点,遍历右子树;
后序遍历:遍历左子树,遍历右子树,访问根节点。

4.一些常见的二叉树

满二叉树: 具有(2^h)-1个结点的二叉树。满二叉树中每一层的节点数目都达到最大值。满二叉树按照约定编序号是从上到小,从左到右的。
完全二叉树: 一个具有n个结点高度为h的二叉树,如果它的每个节点都与高度h的满二叉树中结点的序号一一对应,则称这个二叉树是完全二叉树。(满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树)
线索二叉树: 对二叉树以某种次序进行遍历并加上线索的过程称为线索化,而线索化得到的二叉树称为线索二叉树。
折半判定树: 折半判定树的特征是比根节点小的数在左子树,比根节点大的数在右子树 。折半判定树有一些特征:
1)任意两棵折半判定树,如果它们的结点个数相同,那么它们的结构完全相同 ;
2)任意结点的左右子树中结点个数最多相差1;
3)任意结点的左右子树的高度最多相差1;
4)任意两个叶子所处的层次最多相差1。

防止找不到,就cv到这里
版权声明:本文为CSDN博主「小陈要努力.」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41907993/article/details/108415832

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值