课程设计步骤.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数据结构》课程设计的步骤 数据结构课程设计就是要运用本课程以及到目前为止的有关课程中的知识和技术来解决实际的问题。在运用计算机解决一个实际问题时,大致要进行以下几个方面的工作:首先要采用一种简明、严格的模型描述问题,然后设计求解方法,用计算机来实现这种求解方法,再经过测试,文档制作等。下面介绍各阶段的内容。 1 .建立模型 一般情况下,实际应用问题可能会各式各样,例如我们所熟悉的工资表的处理问题,学生成绩管理问题,电话号码查询问题,从一组数据中选择若干元素的排列、组合,在国际象棋棋盘上放置八个皇后以使相互间不被吃掉等。这些问题无论是所涉及到的数据还是其操作要求可能都存在一定的差异。尽管如此,许多应用问题之间还是具有一定的相似之处的。例如,虽然工资表和学生成绩表的具体信息(栏目)不同,但如果将两个表中的每个人的工资信息和成绩信息各看作一个整体,则这两个表结构之间就具有了某些共性。另外,从操作方面来看,虽然对这两个表的操作肯定存在差异,但也一定存在一些相同的基本操作。例如,查询一个人的工资信息和成绩信息,修改有关信息等,类似的例子有很多。 另外,许多问题的最初描述既不精确又不简练,还有一些问题不可能简单而精确地用计算机可求解的形式来描述,即使有些可用计算机求解的问题,也需要在很大范围内确定问题的参数,而那些合理的参数值只有通过实验才能确定。因此,要用计算机解决问题,必须首先要以简明、严格的方式将问题描述清楚,可以说,成功的关键在于明确要解决的问题。 正因为现实问题描述中可能存在的不清晰以及许多不同问题之间存在着的某些共性,促使我们需要将一个具体的问题用这些共性的形式模型严格地描述出来,这就是通常所说的 建立模型 。建立问题的模型通常包括所描述问题中的数据对象及其关系的描述、问题求解的要求及方法等方面。建立问题模型有这样的好处:因为所涉及到的许多基本模型在有关的课程中已有介绍,因而通过建立模型,就可以将一个具体的问题转换为所熟悉的模型,然后借助于这一模型来实现。《数据结构》、《离散数学》及许多数学课程中就介绍了许多模型。例如,要描述一个群体中个体之间的关系时,我们可以采用《数据结构》和《离散数学》中所介绍的图结构。要描述一个工程内的关系或进展情况时,我们可以采用《数据结构》中所介绍的 AOV 网或 AOE 网等。在熟练掌握了各种基本模型和方法之后,即使所要求解的问题没有直接可用的模型,也可以借助于这些基本模型和方法构造出合理的模型。 数学或其它科学中的几乎所有分支都可作为某一类具体问题的抽象模型。例如,在涉及到若干对象及其相互间关系的问题时所用的数学模型主要来自图论;数值计算问题中常用的数学模型为线性方程组(用于求解电路的电流强度或结构中的应力)或微分方程(用于预报人口增长情况或化学反应速度等);在符号与文本处理问题时常用字符串及形式语法作为模型(如编译系统)。《数据结构》课程中所介绍的各种结构均可作为一种模型。 2 .构造求解算法 在建立好模型之后,一个具体的问题就变成了一个用模型所描述的抽象的问题。借助于这一模型以及已有的知识(例如数据结构中有关图结构的基本知识),我们可以相对容易地描述出原问题的求解方法即算法。从某种意义上说,该算法不仅能实现原问题的求解,而且还能实现许多类似的具体问题的求解,尽管这些具体问题的背景及其描述形式可能存在较大的差异。 算法求解的最初目标是给出一个算法形式的解法,这是设计的核心部分。所给出的算法并非一定要用某种计算机语言来描述,但应能较方便地转换为某种计算机语言程序。 在建立了适当的数学模型后,某些问题就可以转换为一些经典问题或基于某些经典问题的综合或变异形式的求解。例如,如果所转换出的模型为图,则可能借助于图的深度遍历、广度遍历、求最小生成树、求最短路径、拓扑排序、关键路径、二分图的匹配、图的着色等问题的求解算法来实现。 在问题的求解没有可借助的方法时,需要自己构思求解方法。在构造求解方法时,需要注意对时间、空间、程序实现以及其它有关性能的要求。另外,在构造算法时,最好是在数学模型上构造,因为这样较为简洁。 3 .选择存储结构 在构造出求解算法之后,就需要考虑在计算机上实现求解了。从算法到程序还是有一定距离的。为此,需要做两方面的工作,其一是选择合适的存储结构,其二是用指定的计算机语言来描述算法。下面先讨论第一个方面,即选择数据结构的问题。 选择合适的存储结构首先是为了将问题所涉及到的数据(包括数据中的基本对象及对象之间的关系)存储到计算机中。此外,还需要考虑所选择的结构是否便于问题的求解,时间和空间复杂度是否符合要求。《数据结构》课程中已经对此作了许多讨论。在实际应用时,需根据问题的要求进行合理的选择及综合。不同的存储形式对问题的求解实现有较大的影响,所占用的存储空间

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档