数据结构第1章绪论.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1章 绪论 1.4 数据结构+算法=程序 N.Wirth提出:数据结构+算法=程序 程序设计的本质是:对要处理的问题选择好的数据结构,在此结构上施加好的算法。 定义变量时: 可用 student x , y ; (2)抽象数据类型 抽象数据类型(Abstract Data Type简写为ADT)指的是用户进行软件系统设计时从问题的数学模型中抽象出来的逻辑数据结构和逻辑数据结构上的运算,而不考虑计算机的具体存储结构和运算的具体实现算法。 抽象数据类型=带关系的数据元素集合+抽象运算 例如,抽象数据类型“复数”的定义: ADT Complex { 数据对象: D={e1, e2 | e1,e2均为实数} 数据关系: R1={e1,e2 | e1是复数的实数部分,e2 是复 数的虚数部分 } 基本操作: AssignComplex(Z,v1,v2):构造复数Z,其实部和虚部分别赋以参数v1和v2的值。 DestroyComplex(Z):复数Z被销毁。 GetReal(Z,real):用real返回复数Z的实部值。 GetImag(Z,Imag):用Imag返回复数Z的虚部值。 Add(z1,z2,sum):用sum返回两个复数z1,z2的和值。 } ADT Complex 1.2 算法及其描述 1.2.1 什么是算法 1.2.2 算法描述 1.2.1 什么是算法 数据元素之间的关系有逻辑关系和物理关系,对应的操作有逻辑结构上的操作功能和具体存储结构上的操作实现。 通常把具体存储结构上的操作实现步骤或过程称为算法。 广义地说,算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每个指令表示计算机的一个或多个操作。 算法的五个重要的特性 (1)有穷性:在有穷步之后结束。 (2)确定性:无二义性。 (3)可行性: 每个操作都足够基本,可通过已经实现基本运算有限次执行来实现。 (4)有输入:有0个或多个外部输入 (5)有输出:有1个或多个输出 例 考虑下列两段描述: (1) void exam1( ) { n=2; while (n%2==0) n=n+2; coutn; } (1)算法是一个死循环,违反了算法的有穷性特征。 (2) void exam2( ) { y=0; x=5/y; coutx“ ” y; } 算法包含除零错误,违反了算法的可行性特征。 getsum(int num) //无输出的算法没有任何意义 { int i,sum=0; for( i=1; i=num; i++ ) sum+=i; } 缺少:return sum; 或者:coutsum=“sum; 1.2.2 算法描述 本书中采用C/C++语言描述算法。 说明:C++语言中提供了一种引用运算符“”,引用是个别名,当建立引用时,程序用另一个已定义的变量或对象(目标)的名字初始化它,从那时起,引用作为目标的别名而使用,对引用的改动实际就是对目标的改动。 注意:Turbo C不支持引用类型。 返回 引用常用于函数形参中,采用引用型形参时,在函数调用时将形参的改变回传给实参,例如,有如下函数(其中的形参均为引用型形参): void swap ( int x, int y ) /*形参前的“”符号不是指针运算符*/ { int tmp=x; x=y; y=tmp ; } 当用执行语句swap(a,b)时, a和b的值发生了交换。 反之,有以下函数swap1( ) void swap1 ( int x , int y) { int temp; temp=x; x=y; y=temp; } 当用执行语句swap1(a,b)时, a和b的值不会发生了交换。 在C语言中,由于不支持引用类型,所以采用指针的方式来回传形参的值,需将上述函数改为: int swap2(int *x,int *y) { int temp; temp=*x; /* 将*x的值放在temp中 */

文档评论(0)

wendan118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档