- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
树中每一个结点只有一个直接前驱,称作父结点。没有直接前驱的结点只有一个,称作树的根结点,简称为树的根。例如,在上图中,结点沈阳工业大学是树的根结点。每一个结点可以有多个直接后继,它们都称为该结点的子女。没有直接后继的结点称为叶子结点(如:图中的结点理学院、数学教研室等)。 除树根以外的其它结点被划分为多个互不相交的有限集合,每个集合又是一棵树,被称为根的子树。结点所拥有的子树的棵树被称为该结点的度。 如上图中沈阳工业大学根节点 的度是4,理学院的度是2,树中所有结点的度的最大值称为树的度。例如,图中所示的树的度为4。 用树来表示算术表达式的原则如下: (1)算术表达式中的每一个运算符对应于树中的一个结点。 (2)运算符的任一运算对象皆为该运算符结点的子树。 (3)运算对象中的单个变量均为叶子结点。 下图是用树结构对表达式a + b/(c-d) - ?(x, y, z)*e 的表示。注意:表示一个表达式的表达式树可能并不唯一。 - + / a - b d c * e ? a+b/(c-d) b/(c-d) c-d ?(x, y, z) ?(x, y, z)*e x y z 5.4.2 二叉树及其基本性质 1. 什么是二叉树 二叉树是另一种树型结构,当然二叉树也是一种非线性结构。它的特点是: (1)非空二叉树只有一个根结点; (2)每一个结点最多有两棵子树,顺序不能颠倒,分别称为该结点的左子树与右子树。 可见在二叉树中,不存在度大于2的结点,从而所有子树也均为二叉树。另外,在二叉树中,一个结点可以只有左子树而没有右子树,也可以只有右子树而没有左子树。当一个结点既没有左子树也没有右子树时,该结点即是叶子结点。 下图是一棵深度为3的二叉树。 A C E B F 2. 二叉树的基本性质 性质1 在二叉树的第i层上,最多有 (i≥1)个结点。 性质2 深度为m的二叉树最多有 -1个结点。 性质3 在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。 性质4 具有n个结点的二叉树,其深度至少为?log2n?+1,其中?log2n?表示取log2n的整数部分。 2i-1 2m 3. 满二叉树与完全二叉树 满二叉树与完全二叉树是两种特殊形态的二叉树。 (1)满二叉树 满二叉树是一棵深度为m且有 -1个结点的二叉树。该二叉树每一层上的所有结点数都达到最大值。 2m (a) 深度为2的满二叉树 (b) 深度为3的满二叉树 A B C D E F G A B C 1 2 3 4 5 6 7 V (1:7) 15 33 5 21 78 46 25 → (a)长度为6的线性表 1 2 3 4 5 6 7 V (1:7) 15 33 5 21 25 78 46 (b)插入元素25后的线性表 4. 顺序表的删除操作 在一般情况下,要删除第i(1≤i≤n)个元素时,则要从第i + 1个元素开始,直到第n个元素之间共n – i个元素依次向前移动一个位置。删除结束后,线性表的长度就减小了1。 图(a)为一个长度为6的线性表顺序存储在长度为7的存储空间中。现在要求删除线性表中的第3个元素(即删除元素5)。具体操作步骤为:从第4个元素开始直到最后一个元素,将其中的每一个元素均依次往前移动一个位置。此时,线性表的长度变成了5,如图(b)所示。 1 2 3 4 5 6 7 V (1:7) 15 33 5 21 78 46 (a)长度为6的线性表 1 2 3 4 5 6 7 V (1:7) 15 33 21 78 46 (b)删除元素5后的线性表 5.2.2 线性链表 线性表的顺序存储结构具有简单、操作方便等优点。但在做插入或删除操作时,需要移动大量的元素。因此,对于大的线性表,特别是元素变动频繁的大线性表不宜采用顺序存储结构,而是通常采用链式存储结构。 在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。链式存储方式既可用于表示线性结构,也可用于表示非线性结构。 假设数据结构中的每一个数据结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放指针,称为指针域。其中指针用于指向该结点的前一个或后一个结点,从而可以表示数据元素之间的逻辑关系。 我们把线性表的链式存储结构称为线性链表。线性链表中存储结点的结构如图所示: 存储地址 i 数
文档评论(0)