树 - 树和森林- 树的存储结构(二)
孩子链表表示法
( ) 结点结构
① 定长结点
即树中每个结点均按树的度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)中的树
lishixinzhi/Article/program/sjjg/201311/23871
爱新觉罗苑刺五:在计算机考研专业基础课统考科目中,一共考查数据结构、操作系统、计算机组成原理、计算机网络四门课程,满分为150分,其中数据结构占45分. 一、考查目标 (1)理解数据结构的基本概念,掌握数据的逻辑结构、存储结构及其差异,以...
全椒县17637819844: 计算机专业考研基础内容50 ?
爱新觉罗苑刺五: 计算机专业硕士研究生国家统考科目:政治+英语+数学+计算机专业课考研大纲:(... 平衡二叉树(三)树、森林1.书的存储结构2.森林与二叉树的转换3.树和森林的遍...
全椒县17637819844: 从概念上讲,树,森林和二叉树是三种不同的数据结构 - ?
爱新觉罗苑刺五: 树的孩子兄弟链表表示法和二叉树二叉链表表示法,本质是一样的,只是 解释不同,也就是说树(树是森林的特例,即森林中只有一棵树的特殊情况)可用 二叉树惟一表示,并可使用二叉树的一些算法去解决树和森林中的问题. 树和二叉树的区别有3:一是二叉树的度至多为2,树无此限制;二是二叉树有左右 子树之分,即使在只有一个分支的情况下, 也必须指出是左子树还是右子树,树无 此限制;三是二叉树允许为空,树一般不允许为空(个别书上允许为空).
全椒县17637819844: 树和二叉树的基本知识? - ?
爱新觉罗苑刺五: 二叉树在计算机科学中,二叉树是每个结点最多有两个子树的有序树.通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree).二叉树常被用作二叉查找树和二叉堆.二叉树的每个结点至多只有二棵子树(不存在度大于2的结...
全椒县17637819844: 数据结构知识归纳?
爱新觉罗苑刺五: 第一章:数据结构概述 一、什么是数据结构 1、作者开篇谈到: 一般来说解决一个具体的问题时,大致需要经过下列几个步骤:首先要从具体的问题抽象出一个适当的数学模型,然后设计一个解此数学模型的算法,最后编写出程序代码,进行...
全椒县17637819844: 用二叉链表存储树,为什么根结点的右指针是空,数据结构 - ?
爱新觉罗苑刺五: 采用二叉树结构存储树或森林,即树/森林的左子右兄表示法. 二叉树中节点的左“孩子”是原树/森林对应节点的“长子节点”,右“孩子”是原树/森林对应节点的“兄弟节点”. 而树的根节点是没有兄弟的,故在二叉链表中它的右指针为空()
全椒县17637819844: 数据结构中,采用什么方式存储森林 - ?
爱新觉罗苑刺五: 树的存储方式有多种,孩子兄弟法只是其中的一种.认真看下树,森林的定义
全椒县17637819844: 树和森林可通过什么方式转换,与二叉树转换通过什么存储方式 填空题 - ?
爱新觉罗苑刺五: 1、 树、森林转换成二叉树 将一棵树转换成二叉树的方法:将一棵树转换成二叉树实际上就是将这棵树用孩子兄弟表示法存储即可,此时,树中的每个结点最多有两个指针:一个指针指向第一个孩子,另一个指针指向右侧第一个兄弟.当你将这...
全椒县17637819844: 二叉树与存储结构,怎么用二叉树这种算法实现怎么样的存储?有没有个简单形象的小例子??
爱新觉罗苑刺五: 树和森林都是对数据进行的一种抽象的描述,具体的实现方法说白了还是链表,因为计算机本身的存储构造就是这样——开辟一个新空间,连续的,或者不连续的,然后我们就要思考如何合理的利用这些空间,节约空间或者节约时间.而现在这种存储方法用二叉树的这种抽象形式表现出来,只是容易让人容易理解一些而已,毕竟这种存储问题实在是太不好用自然语言说明白.