知识大全 树的存储结构

Posted 结点

篇首语:知识以生命为前提,以经验为条件。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 树的存储结构相关的知识,希望对你有一定的参考价值。

  本节仅讨论树的三种常用表示法

双亲链表表示法  双亲链表表示法利用树中每个结点的双亲唯一性 在存储结点信息的同时 为每个结点附设一个指向其双亲的指针parent 惟一地表示任何 棵树 ( )双亲链表表示法的实现 方法① 用动态链表实现 方法② 用向量表示——更为方便

( )双亲链表向量表示的形式说明  #define MaxTreeSize //向量空间的大小 由用户定义  typedef char DataType //应由用户定义  typedef struct      DataType data //结点数据      int parent //双亲指针 指示结点的双亲在向量中的位置    PTreeNode   typedef struct       PTreeNode nodes[MaxTreeSize];      int n //结点总数     PTree   PTree T //T是双亲链表  注意      若T nodes[i] parent=j 则T nodes[i]的双亲是T nodes[j]

( )双亲链表表示实例 【例】图 (a)的双亲链表表示如下面数组所示

   分析   E和F所在结点的双亲域是 它们的双亲结点在向量中的位置是 即B是它们的双亲  注意   ① 根无双亲 其parent域为   ② 双亲链表表示法中指针parent向上链接 适合求指定结点的双亲或祖先(包括根) 求指定结点的孩子或其它后代时 可能要遍历整个数组

孩子链表表示法

( ) 结点结构 ① 定长结点  即树中每个结点均按树的度k来设置指针      n个结点的树一共有n*k个指针域 而树中只有n 条边 故树中的空指针数目为         kn (n )=n(k )+ (k越大 浪费的空间越多)

 ②不定长结点  即树中每个结点按本结点的度来设置指针数 并在结点中增设一个度数域degree指出该结点包含的指针数   各结点不等长 虽然节省了空间 但是给运算带来不便

( )孩子链表表示法  孩子链表表示法是为树中每个结点设置一个孩子链表 并将这些结点及相应的孩子链表的头指针存放在一个向量中  ①孩子链表表示法的类型说明    //以下的DataType和MaxTreeSize由用户定义    typedef struct CNode//子链表结点        int child //孩子结点在向量中对应的序号        struct CNode *next       CNode     typedef struct         DataType data //存放树中结点数据        CNode *firstchild //孩子链表的头指针      PTNode     typedef struct        PTNode nodes[MaxTreeSize]         Int n root //n为结点总数 root指出根在向量中的位置      CTree     Ctree T //T为孩子链表表示 注意     当结点T nodes[i]为叶子时 其孩子链表为空 即T nodes[i] firstchild=NULL

 ②孩子链表表示法实例  【例】图 (a)所示树的孩子链表表示T如下面(a)图所示

 注意   ① 孩子结点的数据域仅存放了它们在向量空间的序号   ② 与双亲链表表示法相反 孩子链表表示便于实现涉及孩子及其子孙的运算 但不便于实现与双亲有关的运算   ③ 将双亲链表表示法和孩子链表表示法结合起来 可形成双亲孩子链表表示法  【例】上面的(b)图就是用双亲链表表示法来存储图 (a)中的树           孩子兄弟链表表示法( )表示方法  在存储结点信息的同时 附加两个分别指向该结点最左孩子和右邻兄弟的指针域leftmostchild和rightsibling 即可得树的孩子兄弟链表表示

( )表示实例 【例】图 . (a)中树的孩子兄弟链表如下图所示

  注意   这种存储结构的最大优点是 它和二叉树的二叉链表表示完全一样 可利用二叉树的算法来实现对树的操作

cha138/Article/program/sjjg/201311/23211

相关参考

知识大全 树 - 二叉树 - 二叉树的存储结构(二)

  链式存储结构  结点的结构  二叉树的每个结点最多有两个孩子用链接方式存储二叉树时每个结点除了存储结点本身的数据外还应设置两个指针域  lchild和rchild分别指向该结点的左孩子和右孩子结点

知识大全 树 - 二叉树 - 二叉树的存储结构(一)

  顺序存储结构  该方法是把二叉树的所有结点按照一定的线性次序存储到一片连续的存储单元中结点在这个序列中的相互位置还能反映出结点  之间的逻辑关系  完全二叉树结点编号  ()编号办法  在一棵n个

知识大全 树 - 树和森林- 树的存储结构(三)

  孩子兄弟链表表示法  ()表示方法  在存储结点信息的同时附加两个分别指向该结点最左孩子和右邻兄弟的指针域leftmostchild和rightsibling即可得树的孩  子兄弟链表表示  ()

知识大全 树 - 树和森林- 树的存储结构(一)

  本节仅讨论树的三种常用表示法  双亲链表表示法  双亲链表表示法利用树中每个结点的双亲唯一性在存储结点信息的同时为每个结点附设一个指向其双亲的指针parent惟一  地表示任何棵树  ()双亲链表

知识大全 树 - 树和森林- 树的存储结构(二)

  孩子链表表示法  ()结点结构  ①定长结点  即树中每个结点均按树的度k来设置指针  n个结点的树一共有n*k个指针域而树中只有n条边故树中的空指针数目为  kn(n)=n(k)+(k越大浪费的

知识大全 数据结构[3]

  树与二叉树  二叉树和树是两种不同的概念这一点是必须要搞清楚的在这个部分我们要掌握树的定义二叉树的定义及主要特征(特殊的二叉树二叉树的性质)在二叉树的顺序存储结构和链式存储结构方面特别是链式存储结

知识大全 数据结构与算法设计自学考试大纲[4]

第六章二叉树和树  本章介绍了树和森林的定义特别介绍了二叉树的定义`二叉树的性质`二叉树的存储结构及二叉树基本操作的实现对二叉树的周游算法作了详细描述森林与二叉树之间的转换为树提供了一种自然的存储结构

知识大全 09年自考《数据结构》各章要点二[2]

  满二叉树是一棵深度为k结点数为(^k)的二叉树完全二叉树是满二叉树在最下层自右向左去处部分结点  二叉树的顺序存储结构就是把二叉树的所有结点按照层次顺序存储到连续的存储单元中(存储前先将其画成完全

知识大全 数据结构考研分类复习真题 第六章 树和二叉树 (五)[5]

  .假设以双亲表示法作树的存储结构写出双亲表示的类型说明并编写求给定的树的深度的算法(注:已知树中结点数)【清华大学七(分)】  .试编写算法求出二叉树的深度二叉树的存储结构为如下说明的二叉链表: