几种基本算法在树形结构上应用.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
几种基本算法在树形结构上的应用 南京外国语学校 欧阳云 摘要 ●树形结构是信息学中重要的结构模型之一,有 关树形结构的试题在竞赛中也经常出现。鉴于 在树形结构上使用动态规划算法已成为近年来 信息学竞赛的考察热点,本文将重点围绕动态 规划算法在树形结构上的应用,分三个部分进 行阐述,首先对树形结构的特点进行简要介绍, 然后对几种基本算法在树形结构上的应用举例 说明,最后进行总结。 引言 ●众所周知,树形结构是在信息学竞赛中经常出 现的一类结构模型,各类有关树形结构的题目 也是屡见不鲜 ●纯粹的树形结构题,因为树形模型较为单一, 而没有比较大的难度。 ●因此,我们经常看到的是在树形结构上,运用 些基本算法解决难度更大的问题。 本文将对此进行一些探索。 树形结构的特点 由于这里主要研究的是树形结构的特点,因此 在这里,树的定义和一些基本概念就不赘述了。 下面主要阐述一些树形结构的主要特点。 树形结构的特点 ●在一棵树里,除了根节点以外的所有节点有且 只有一个父亲节点,根节点没有父亲节点。除 了叶子节点外,所有的节点有一个或多个孩子 节点,叶子节点没有孩子节点。 ●一棵树里任意两个节点之间都有且只有一条通 路,如果把任意一节点与其相邻节点之间的通 路看作一条无向边的话,那么一棵树里没有环 及重边的存在。因此,一棵有N个节点的树恰 好有N-1条边。 树形结构的特点 ●树是具有递归结构的。一个节点即是一棵树, 而一棵有孩子节点的树,若其根节点为a节点 则其任意一个孩子节点b,与所有不用通过a节 点即可和b相连的节点也构成一棵树,称为以b 为根的a的一棵子树。b的任意一棵子树也是a 的一棵子树。 如果一棵树是有根的,那么某个节点a的深度 d(a)=d( father(a)+1,其中 father(a)为a的父亲 节点。特别的,d(root)=1。 树形结构的特点 以上即为一些树形结构所具有的特点,在本文 的例题中,对于以上几条性质将会有所应用, 到时将不再具体阐述。 树形结构的特点 ●对于一棵树,对于它的遍历一般有两种途径。 第一种是深度优先遍历,第二种是宽度优先遍 历,这两种遍历方法对于一棵树进行遍历后, 会得到不同的遍历顺序。在一般的使用中,这 两种遍历都是十分有用的。对于深度优先遍历, 我们可以写出如下的伪代码 树形结构的特点 ●而对于宽度优先遍历,我们可以写出如下的伪 代码 procedure bfs(front) begin if队列为空 then exit; 时间戳= front; 对于队首( queue[ front])节点x的每个孩子y 把y加入队列 bfs(front+1) end

文档评论(0)

189****1620 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档