美文网首页
树与森林

树与森林

作者: 风吹过山 | 来源:发表于2018-03-05 15:55 被阅读0次

一、
树的存储结构有很多种形式,今天就谈谈树的三种常用的链表存储方式吧。
双亲表示法:由于树中的每个结点都有唯一的一个双亲结点,所以用一组连续的存储空间(一维数组)存储树中的各个结点,一个数组元素表示树的一个结点,每个结点含两个域,数据域存放结点本身信息,双亲域指示本结点的双亲结点在数组中位置。

孩子表示法:树中的每个结点可能有多棵子树,则可用多重链表表示,即每个结点有多个指针域,其中每个指针域指向一棵子树的根结点。这样的话,会存在两种结点格式。


微信图片_20180306161926.png

第一种结点格式结点是同构的,d为树的度(分支数目)。因为大多数的结点的度都小于d,则会有很多空链域。n个结点度为k的树中必有n(k-1)+1个空链域。

第二种结点格式不是同构的,d为结点度,degree域的值同d,节约空间,但操作不方便。

两种格式的区别在于:第一种格式是默认以树的度为为d的值。 而第二种格式是以结点的度为d的值,也就是degree的值。

另一种孩子表示法:每个结点的孩子结点排列起来,成一个线性表,以单链表作存储结构。n个结点有n个孩子链表(叶子的孩子链表为空表)。最后n个头指针又组成一个线性表。
孩子表示法与孩子双亲表示法,如下图:


微信图片_201803061716212.png

孩子兄弟表示法(二叉树表示法):在存储结点信息的同时,附加两个分别指向该结点最左孩子和右邻兄弟的指针域fch和nsib,即可得树的孩子兄弟链表表示。
如图:


微信图片_201803061716211.png

二、森林与二叉树的转换
森林(Forest):m(m≥0)棵树的集合。

因为二叉树和树都可用二叉链表作为存储结构,那么树就可以转换为一棵唯一的二叉树,二叉树也可转换为树。

如图: 微信图片_20180306170850.png

那么同理,把森林中第二棵树的根节点看成是第一棵树的根节点的兄弟。则同样可导出森林和二叉树的对应关系。

如图: 微信图片_20180306171051.png

所以可引出森林或树转为二叉树的定义。

相关文章

  • 树与森林

    一、树的存储结构有很多种形式,今天就谈谈树的三种常用的链表存储方式吧。双亲表示法:由于树中的每个结点都有唯一的一个...

  • 基于R语言的随机森林算法

    随机森林基本原理 随机森林,从字面理解就是随机生成的树构成的森林,树与树之间是独立的。每一颗树就是决策树,所以说随...

  • {诗}寄 远 方

    远处 山与山之间 孕育着 森林 挺立如你 森林 树与树之间 延伸着 小路 期盼 如你 在某一天 你把血滴进土中 然...

  • 【摄影记】在绿光森林,追寻绿野仙踪

    森林的幻想 森林之光 魅影仙踪 森林烟雾 古树与少女 少女的嬉戏 动人的回眸一笑 心动与怡然 回归大自然 玩耍溪畔...

  • 森林王

    时间:傍晚 地点:森林之王大象居住的树屋内 人物:大象泰坦,光明与绿色森林之王,德高望重的森林之王;因几年前率领光...

  • Java_二叉树概念及基本操作

    树、森林和二叉树的转换 树转换为二叉树 森林转换为树 二叉树转换为树 二叉树转换为森林 代码

  • 荒诞的梦

    梦说 一棵树就是森林 森林公园只有一棵树 森林生态系统只有一棵树 森林别墅 额 不好意思没有树 它只是挨着森林公园

  • 树与藤

    树与藤都生长在大森林中。藤的命数注定要找一棵树缠绕,森林对藤没有任何意义。他们都在慢慢地长大…… 有一天,树问藤:...

  • 林无常林

    A: 你是谁? B: 我是森林。 A: 森林是树? B: 每棵树都不是森林。 (停顿一秒) A: 还是原来的森林?...

  • 随机森林-Python

    这里随机森林分类器的预测可视化与决策树差不多,因为随机森林就是决策树投票得到的结果。代码: 关键代码:plt.sc...

网友评论

      本文标题:树与森林

      本文链接:https://www.haomeiwen.com/subject/bbylzxtx.html