网站大量收购独家精品文档,联系QQ:2885784924

西安电子科技大学数据结构C语言版第11章课件.ppt

西安电子科技大学数据结构C语言版第11章课件.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章 数据结构程序设计 ;11.1 数据结构程序设计 ; 算法说明应该在开始设计算法时就写明,不排斥在算法设计过程中作一些补充和修改,但是切忌在最后补写。对于递归算法的情况,这一点尤其重要。另一方面,这样做也是递归算法设计的正确而有效的途径,在算法设计(即解决一个问题)的过程中,能否利用自身的处理能力来解决所划分出的一个或几个子问题,全凭检查自身的规格说明而定。书写(递归)算法的规格说明时,应该忽略它如何实现或假定它能够实现。如何实现的问题正是接下去要做的事。 算法说明书写得不好或不完全时,往往失去了评判一个算法正确与否的标准。书写恰当而又简洁的算法说明是一项技巧性很强的活动,通常要经过不断的练习才能达到。 ; 2. 注释与断言 在难懂的语句和关键的语句(段)之后加以注释可以大大提高程序的可读性。注释要恰当,并非越多越好;此外,注释句的抽象程度应略高于语句(段),例如,应避免用“{i增加1}”来注释语句“i++;”。 断言是注释的一种特殊写法,是一类特别重要的注释。它是一个逻辑谓词,陈述算法执行到这点时应满足的条件。多写断言式的注释,甚至以断言引导算法段的设计,是提高算法的结构良好性、避免错误和增强可读性的有效手段,是特别值得提倡的。其中最重要的是算法的入口断言和ELSE分支断言。注意,正确的算法也只能在输入参数值合法的前提下得出正确的结果。如果算法不含参数合法性检测代码段,书写入口断言是最低限度的要求。 ; 3. 输入和输出 算法的输入和输出可以通过三种途径实现。第一种是通过输入/输出函数实现,其特点是实现算法与计算环境外部的信息交换;第二种是以算法中参数表里显式列出的参量作为输入/输出的媒介;第三种是通过全局变量或外部变量隐式地传递信息。后两种方法的特点是实现了一个算法与其调用者之间的信息交换。 如果一个算法是定义在某一个数据结构之上的几个操作之一,该数据结构可以不列在算法的参数表中。在其他情况下,应尽量避免使用第三种方法。 ; 4. 语句选用的算法结构 赋值运算、IF分支语句和WHILE循环语句是最基本的三种语句(分别描述顺序、选择和重复三种基本程序结构),仅用此三种语句就足以对付一切算法的设计了。实际上,不仅是“足够”,还是“最好”。这样做对于提高结构良好性和可读性、避免逻辑错误是有益和有效的。WHILE语句比其他循环语句更容易验证算法的正确性。SWITCH分支语句是广义的IF分支语句,在分支条件的选用可以避免IF语句的多重嵌套。有助于提高算法的可读性,也是一个鼓励使用的语句。在绝对合适的情况下选用FOR循环语句也是合理的。通常情况下不准使用GOTO语句。 ;算法设计过程中应尽量避免下列所示的语句结构: do { do {… }while... }while... 此外,语句的开/闭括号应对齐。 ; 5. 基本运算 如果题目中未明确要求用某种结构上的基本运算编写算法,不得直接利用教科书中给出的基本运算。如果非用不可,则要求同时将所用到的所有基本运算写出具体函数过程加以实现。 ; 6. 几点建议 (1) 建议以图说明算法。例如:设两个栈共享向量空间V[1]-V[m],它们的栈底分别设在向量的两端,且进栈的每个元素只占一个分量。试写出这两个栈公用的栈操作算法push(i,x),其中i为0或1,用以指示栈号。 PUSH算法: Void push (int i, int x); {两栈(标号0、1)共享空间V[1] -V[m],栈底在两端。top[0]和top[1]为两栈顶指针。V[1] -V[top[0]]为栈0,V[top[1]] -V[m]为栈1。本算法将x推入栈i。入口时若栈满则不改变栈且输出“overflow”}。; (2) 建议在算法书写完毕后用边界条件的输入参数值验证一下算法能否正确执行。例如,对于顺序表插入算法,空表是一个边界条件。 ;11.1.2 上机实习步骤规范 上机实习是数据结构课程教学不可或缺的重要环节。上级实习是通过编写解决简单应用问题的程序,达到如下训练目的: (1) 使学生进一步理解和掌握课堂上所学各种基本数据结构的逻辑结构、存储结构和操作实现算法以及它们在程序中的使用方法。 (2) 使学生掌握软件设计的基本内容和设计方法,并培养学生规范化软件设计的能力。 (3) 使学生进一步熟练掌握一门高级程序设计语言。 ; 下面给出数据结构课程中上机实习步骤主要包含的内容。

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档