树结构

⭐️树的定义
树是n(n>=0)个有限数据元素的集合
⭐️树的特点
(1)树的根结点没有前驱结点,除根结点之外的所有结点有且只有一个前驱结点。
(2)树中所有结点可以有0个或多个后继结点
⭐️树的相关术语
(1)结点的度:结点所拥有的子树的个数
(2)叶结点:度为0的结点称为叶结点,或者称为终端结点
(3)分支结点:度不为0的结点称为分支结点,或者称为非终端结点。一棵树的结点除叶结点外,其余的都是分支结点。
(4)左孩子、右孩子、双亲、兄弟:树中一个结点的子树的根结点称为这个结点的孩子 在二叉树中,左子树的根结点称为左孩子,右子树的根结点称为右孩子。反过来这个结点称为它孩子结点的双亲。具有同一个双亲的孩子结点互称为兄弟。
(5)路径、路径长度:如果一棵树中的一串结点n1,n2,n3•••nk,有如下关系:结点ni是ni+1的父结点(1<=i<k)就把n1,n2,•••,nk称为一条由n1至nk的路径,这条路径的长度是k-1【树的路径长度指根结点到各结点的路径长度之和】
例:在这里插入图片描述
总路径长度:AB+AB+BD+AC+AC+CF+AC+CE

(6)祖先,子孙:在树中,如果有一条路径从结点M到结点N,那么M就称为结点N的祖先,N称为结点M的子孙
(7)结点的层数:规定树的根结点层数为1,其余结点的层数等于他的双亲的层数加1
(8)树的深度:树中的结点的最大层数称为树的深度
(9)树的度:树中各结点度的最大值称为该树的度
(10)有序树和无序树:如果一棵树中的结点的各子树从左到右是有次序的,即若交换了某结点各子树的相对位置,则构成不同的树,称这颗树为有序树;反之,则称为无序树
(11)森林:0颗或者有限颗不相交的树的集合
在这里插入图片描述

🌟🌟二叉树

❄️二叉树的任何一个结点最多只能拥有2个子树(左子树和右子树)
❄️相关术语
(1)满二叉树
如果一颗二叉树每一层的结点个数都达到了最大,这棵二叉树称作满二叉树。所有的分支结点都存在左子树和右子树,所有的叶子都在最下层这一层。
(2)完全二叉树
一棵深度为k的有n个结点的二叉树,对其结点按从上至下,从左至右的顺序进行编号,如果编号为i(1<=i<=n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则称这棵二叉树为完全二叉树。
【特点:叶子结点只能出现在最下层和次最下层,且最下层的叶子结点集中在树的左部】
❄️满二叉树必定是完全二叉树,而完全二叉树未必是满二叉树

❄️二叉树的主要性质
(1)一棵非空二叉树的第i层上最多有2^(i-1)个结点(i>=1)
(2)一棵深度为k的二叉树中,最多具有2^k-1个结点
(3)对于一棵非空的二叉树,若叶子结点数为n0,度数为2的结点数为n2,则有n0=n2+1
(4)具有n个结点的完全二叉树的深度k为[log2(n)]+1
(5)对于具有n个结点的完全二叉树,如果按照从上之下和从左至右的顺序对二叉树中的所有结点从1开始顺序编号,则对于任意的编号为i的结点有如下性质:
1)如果i>1,则编号为i的结点的双亲结点的编号为[i/2];如果i=1,则序号为i的结点为根结点,无双亲结点
2)如果2i<=n,则编号为i的结点的左孩子结点的编号为2i;如果2i>n,则序号为i的结点无左孩子。
3)如果2i+1<=n,则编号为i的结点的右孩子结点的编号为2i+1;如果2i+1>n,则序号为i的结点无右孩子
【二叉树的根结点的编号从1开始】

❄️二叉树的存储
(1)顺序存储结构
一般是按从上至下,从左到右的顺序存储的
满二叉树和完全二叉树采用顺序存储比较合适
(2)链式存储结构
1)二叉链表存储
链表中每个结点由3个域组成,1个数据域和2个指针域,分别用来给出该结点的左孩子和右孩子所在的链结点的存储地址
2)三叉链表存储
在二茬链表存储的基础上增加一个parent域,只想该结点的双亲结点的指针

❄️二叉树的二叉链表存储结构

 typedef struct bitnode
 {datatype data;
  struct bitnode *Ichild;*rchild;
  }BiTNode,*BiTree;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值