« 沪江网 | 英语网 | 日语网 | 法语网 | 购买考研复习的方方面面 沪江网店 2010考研大纲敬请期待!
用户名 密码 轻松注册,拥有更好的学习服务
沪江考研

考研专业课之统考计算机蓝宝书(19)

来源:跨考网 | 时间:2008-12-25 | 阅读:832 次 | [ ] [收藏] [划词]

3.2.2 二叉树的存储

1.顺序存储结

所谓二叉树的顺序存储,就是用一组连续的存储单元存放二叉树中的结点。一般是按照二叉树结点从上至下、从左到右的顺序存储。这样结点在存储位置上的前驱后继关系并不一定就是它们在逻辑上的邻接关系,然而只有通过一些方法确定某结点在逻辑上的前驱结点和后继结点,这种存储才有意义。因此,依据二叉树的性质,完全二叉树和满二叉树采用顺序存储比较合适,树中结点的序号可以唯一地反映出结点之间的逻辑关系,这样既能够最大可能地节省存储空间,又可以利用数组元素的下标值确定结点在二叉树中的位置,以及结点之间的关系。

二叉树的顺序存储表示可描述为:
#define MAXNODE /*二叉树的最大结点数*/
typedef elemtype SqBiTree[MAXNODE] /*0号单元存放根结点*/
SqBiTree bt;
即将bt定义为含有MAXNODE个elemtype类型元素的一维数组。

 

订阅收藏考研专业课之统考计算机蓝宝书

2.链式存储结构

所谓二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示着元素的逻辑关系。通常有下面两种形式。
(1)二叉链表存储
链表中每个结点由三个域组成,除了数据域外,还有两个指针域,分别用来给出该结点左孩子和右孩子所在的链结点的存储地址。结点的存储的结构为:

其中,data、lchild以及rchild三个域的意义同二叉链表结构;parent域为指
向该结点双亲结点的指针。这种存储结构既便于查找孩子结点,又便于查找双亲结点;但是,相对于二叉链表存储结构而言,它增加了空间开销。


考研书籍推荐>>考研资料免费下载>>考研网络课堂>>考研时事政治>>考研历年真题>>

重点阅读


考研指南
考研频道精选
考研论坛节目
小Q考研问答
考研电子报
考研资料下载
考研培训机构
新航道
上海新东方
致读者
考研专业课之统考计算机蓝宝书(19)”相关信息由沪江考研提供。如对“考研专业课之统考计算机蓝宝书(19)”页面有疑问,请在线联系我们