每日学习-2月8日

知识点:树

树:树是n个结点的有限级。n=0时称为空树。在任意一棵非空树中:有且仅有一个特定的称为根的结点;当n>1时,其余结点可以分为m个互不相交的有限集T1.T2.......Tm,其中每一个集合本身又是一棵树,并且称为根的子树

例如 :

 

注意:1.n>0时,根结点是唯一的,不可能存在多个根结点

           2.m>0时,子树的个数没有限制,但是它们一定是互不相交的。如下两幅图都不符合树的定义,因为它们都有相交的子树

结点的分类:

树的结点包含一个数据元素及若干指向其子树的分支。结点拥有的子树数称为结点的度。度为0的结点称为叶结点或者终端结点;度不为0的结点称为非终端结点或分支结点。除根结点外分支结点也称为内部结点。树的度是树内各结点的度的最大值。

 

结点间的关系:

 结点的子树的根称为该结点的孩子,相应的,该结点称为孩子的双亲。同一个双亲的孩子之间互称兄弟,结点的祖先是从根到该结点所经分支上的所有结点。反之,以某结点为根的子树中的任一结点都称为该结点的子孙。

树的其他相关概念:

结点的层次从根开始定义起,根为第一层,根的孩子为第二层。。双亲在同一层的结点互为堂兄弟。树中结点的最大层次称为树的深度或高度。

如果将树中结点的各子树看成从左到右是有次序的,不能互换,则称该树为有序树,否则称为无序树。森林是m棵互不相交的树的集合。

树的存储结构:

1.双亲表示法:

假设以一组连续空间存储树的结点,同时在每个结点中,附设一个指示器指示其双亲结点在数组中的位置。也就是说,每个结点除了知道自己是谁之外,还知道它的双亲在哪里

#define MAX_TREE_SIZE 100
typedef int TElemType;
typedef struct PTNode
{
TElemType data;
int parent;
}PTNode;
typedef struct {
PTNode nodes[MAX_TREE_SIZE];
int r,n;
}
PTree;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值