树及二叉树基本概念【数据结构】

树:

结点:结点包括一个数据元素及若干指向其他子树的分支(指针(索引))

结点的度:结点所拥有子树的个数称为该结点的度
叶结点:度为0的结点称为叶结点,叶节点也称为终端节点
分支结点:度不为0的结点称为分支结点,分支结点也称为非终端节点。一棵树中除叶节点外的所有节点都是分支结点
祖先结点:从根节点到该结点所经分支上的所有节点
子孙结点:以某节点为根节点的子树中所有节点
双亲结点:树中某节点有孩子结点,则这个结点称为它孩子结点的双亲结点,双亲结点也称为前驱结点
孩子结点:树中一个节点的子树的根节点称为该结点的孩子结点,孩子结点也称为后继结点
兄弟结点:具有相同双亲结点的结点称为兄弟结点
树的度:树中所有节点的度的最大值称为该树的度
结点的层次:从根节点到树中某节点所经路径上的分支数称为该结点的层次,根节点的层次为1,其他结点层次是其双亲结点层次加1
树的深度:树中所有节点的层次的最大值称为该树的深度
有序树:树中结点的各棵子树T0、T1…是有序的,即为有序树。其中T1叫做根的第一棵子树,T2叫着根的第二棵子树
无序树:树中结点的各棵子树之间的次序不重要,可以相互交换位置

森林:树m棵树的集合(m大于等于0)。在自然界中树和森林是两个不同的概念,但在数据结构中,它们之间的差别很小。删去一棵非空树的根节点,树就变成森林;反之若增加一个节点,让森林中每一棵树的根节点都变成他的子女,森林就变成一棵树


二叉树:

二叉树的特点:
每个结点最多有两棵子树,即二叉树不存在度大于2的结点
二叉树的子树有左右之分,其子树的次序不能颠倒

满二叉树:在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子节点都在同一层上。
完全二叉树:如果一棵具有N个结点的二叉树的结构与满二叉树的前N个结点的结构相同,称为完全二叉树。

若规定根节点的层数为1,则一棵非空二叉树的第i层上最多有2(n-1)(i>0)个结点  

若规定只有根节点的二叉树的深度为1,则深度为K的二叉树的最大结点数是2k- 1(k>=0)  

对任何一棵二叉树, 如果其叶结点个数为 n0, 度为2的非叶结点个数为 n2,则有n0=n2+1  
具有n个结点的完全二叉树的深度k为log2(n+1)上取整  

对于具有n个结点的完全二叉树,如果按照从上至下从左至右的顺序
对所有节点从0开始编号,则对于序号为i的结点有:  
1.  若i>0,双亲序号:(i-1)/2; 
i=0,i为根节点编号,无双亲结点
2.  若2i+1<n,左孩子序号:2i+1,否则无左孩子 
3.  若2i+2<n,右孩子序号:2i+2,否则无右孩子 


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值