当前位置:首页 » 服务存储 » 树的5种存储表现形式
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

树的5种存储表现形式

发布时间: 2023-07-05 17:07:30

‘壹’ 树的存储表示是什么

树的存储结构根据应用的不同而不同,有的从双亲的角度考虑,引出了双亲表示法,有的从孩子的角度考虑,给出孩子表示法,还有的从孩子和兄弟的角度来讨论。这些都是人们在大量的应用中所使用的不同形式的存储结构,这里介绍常用的双亲表示法、孩子表示法、双亲孩子表示法和孩子兄弟表示法。

1.双亲表示法由树的定义可知,树中每个结点都有且仅有一个双亲结点,根据这一特性,可以用一组连续的一维数组来存储树中的各个结点(一般按层次存储),数组中的一个元素对应树中的一个结点,其中包括结点的数据信息以及该结点的双亲在数组中的下标。树的这种存储方法称为双亲表示法,双亲表示法的结点结构如图1所示,其中,data表示数据域,存储树中结点的数据信息,parent表示指针域,存储该结点的双亲在数组中的下标。

1.双亲表示法的存储结构2)双亲表示法示例图1所示的树的双亲表示如图1所示,这是一棵树及其双亲表示法的存储结构。根结点A无双亲,所以parent的值为-1,G、H和I的parent值为4,表示它们的双亲是下标为4的结点E。这种存储结构利用任一结点的双亲是唯一的性质,可以方便地直接找到任一结点的双亲结点,但求结点的孩子结点时需要扫描整个数组。

图1树的双亲表示法示例

‘贰’ 【数据结构】树的定义和树的三种存储结构

树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一颗非空树中:

假设以一组连续空间存储数的结点,同时在每个结点中, 附设一个指示器指示其双亲结点到链表中的位置

把每个结点的孩子结点排列起来,以 单链表作为存储结构 ,则n个结点有n个孩子链表,如果是叶子结点则此单链表为空。然后 n个头指针又组成一个线性表,采用顺序存储结构 ,存放进一个一维数组中。

孩子表示法有两种结点结构: 孩子链表的孩子结点 表头数组的表头结点

对于孩子表示法,查找某个结点的某个孩子,或者找某个结点的兄弟,只需要查找这个结点的孩子单链表即可。但是 当要寻找某个结点的双亲时 ,就不是那么方便了。所以可以将双亲表示法和孩子表示法结合,形成 双亲孩子表示法

任意一棵树,它的结点的第一个孩子如果存在就是唯一的,它的右兄弟存在也是唯一的。因此,设置两个指针,分别指向该结点的第一个孩子和此结点的右兄弟。

‘叁’ 数据结构,树的常用存储方式

存入文本文件,每行:孩子节点-父节点。
这样也方便用Hadoop进行处理。

‘肆’ 二叉树的存储方式有哪些

二叉树的存储方式通常有动态存储。用结构体表示二叉树的一个节点。用数据域保持保存节点的值,用链接语保存两个孩子的指针。还有就是采用满二叉树的顺序存储方式。