数据结构:树

树的定义:

我们简单一点,像下面这个结构的数据结构就是树。我们最上面那个叫做根节点。同时,它的每一个分支是没有关联的,看出来了吧。根节点前面没有节点,就是没有前驱节点。除了根节点的其他节点只有一个前驱节点。

结点的家族关系:

祖先结点:比如这里的G这个节点,从A到G这条线上的所有节点,除了G自己以外的都能叫做G的祖先节点。

子孙结点:反过来想一下,A节点下面所有的节点都是它的子孙节点

双亲结点:类比我们生活中的关系,双亲自然就是爸妈的关系,所以一定是离这个节点最近的祖先节点。比如D它的双亲是B

孩子结点:是双亲节点的反过来,比如H是D的孩子节点:

兄弟结点:比如D下面有三个孩子,那么它们互为兄弟节点

另外的堂兄妹啥的,类比我们生活中的家族关系即可。。。

名词定义:

节点的度:一个树中子节点的数就是这个节点的度。简单一点,凡是一个节点分出几个叉,那他的度就是几。

树的度:整个树中,度数最大的那个节点的度就是整个这颗树的度

分支结点:度>0的结点就是分支节点

叶子结点:度为0的结点就是叶子结点,我们类比一下生活中的树木,他们的叶子是不是没有办法再分叉了?

结点的层次:我们通俗一点,一棵树有从上往下有几行就有几层,根节点开始的是第一层。

结点的深度:我们说水深的时候是从上往下的看,这里是一样的。从根节点开始看,结点在多少层就说深度是多少

结点的高度:高度我们都是从下往上的,所以从叶子结点开始从下往上数层数。有多少就是多少。

树的高度深度):为什么放在一起说?因为他们的数量关系是完全一致的。简单来讲,整个树有多少层,他的高度就是多少。

有序树:我们对数的结点这样规定,从上往下,从左往右的顺序不改变,结点不能随便交换,这样的就是有序树。

无序树:不是有序树,那就是无需树呗。

路径长度:路径长度千万注意了,他不是说的两个结点间的结点个数,而是说的两个结点间边的个数,比如上面A到J,他的路径长度为3,记住一定是边的个数

森林:森林,我们类比现实中的森林,他就是由很多个树组成的就是森林呗

我们记住,任何人类的数据结构,都是通过现实中的事物得来的灵感,

树的性质:4个

注意点:这里的m叉树说的是,每个结点最多能有的孩子结点的个数

树的存储结构:

顺序存储结构:

双亲表示法:用一组连续的存储空间存储树的结点,同时在每个节点中,用一个变量存储这个结点的双亲结点在数组中的位置

具体的表示方法如下图:记住,我们这里仍然使用数组来存储。

链式存储结构:

结构一:孩子表示法:

 存储结构如图所示:

结构二:孩子兄弟表示法:

 存储结构如下图:左边的结构中,第一个格子存放本结点数据,第二个格子存放指向这个结点的左孩子(第一个孩子)的指针,第三个格子存放指向这个结点的右兄弟结点的指针。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值