- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1章 数据结构课件.ppt
数据结构第一章 绪论 主讲教师:石兆英email:fjsddzxx@163.com * ?教材和参考书 第一章 绪论 1.1 数据结构讨论的范畴 ??? ????? 1.1 数据结构讨论的范畴 数值计算的程序设计问题 ????????????????????????????? 1.1 数据结构讨论的范畴 非数值计算的程序设计问题 ? 1.1 数据结构讨论的范畴 非数值计算的程序设计问题 1.1 数据结构讨论的范畴 非数值计算的程序设计问题 1.1 数据结构讨论的范畴 非数值计算的程序设计问题 1.1 数据结构讨论的范畴 《数据结构课程》所处的地位: 1.2 基本概念 一、数据与数据结构 ????????????????????????? 1.2 基本概念 数据结构 1.2 基本概念 数据结构 1.2 基本概念 数据的逻辑结构 1.2 基本概念 数据的逻辑结构 1.2 基本概念 数据的逻辑结构 1.2 基本概念 数据结构的形式定义 1.2 基本概念 数据的存储结构 1.2 基本概念 数据的存储结构 1.2 基本概念 数据的存储结构 1.2 基本概念 如图1.2所示的一叠扑克牌,它的逻辑结构是线性表:(方块2,梅花3,黑桃10(反)),在计算机中的存储结构用链表表示,如图1.3所示(也可以用别的存储方式) 1.2 基本概念 数据的存储结构 1.2 基本概念 二、数据类型 高级程序语言中,一般须对程序中出现的每个变量、常量或表达式,明确说明它们所属的数据类型。不同类型的变量,其所能取的值的范围不同,所能进行的操作不同。 数据类型是一个值的集合和定义在此集合上的一组操作的总称。 如C/C++中的int就是整型数据类型。它是所有整数的集合(在16位计算机中为-32768~32767的全体整数)和相关的整数运算(如+、-、*、/等)。 1.2 基本概念 三、抽象数据类型(Abstract Data Type 简称ADT) ?????????? 1.2 基本概念 例如 抽象数据类型复数的定义: 三、抽象数据类型 使用抽象数据类型的好处 1.3 算法和算法的衡量 一、算法 1.3 算法和算法的衡量 一、算法 1.3 算法和算法的衡量 二、算法设计的原则 1.3 算法和算法的衡量 二、算法设计的原则 1.3 算法和算法的衡量 三、算法效率的衡量方法和准则 ??? 1.3 算法和算法的衡量 三、算法效率的衡量方法 算法复杂性的渐进性态 用O评估算法的复杂性,得到的只是当规模充分大时的一个上界,这个上界的阶越低越精确,结果就越有价值。 用最小上界作为算法复杂性的度量值,用大O表示。 1.3 算法和算法的衡量 如何估算算法的时间复杂度? 1.3 算法和算法的衡量 常用的计算规则: 1.3 算法和算法的衡量 常见函数的时间复杂度按数量递增排列及增长率。 1.3 算法和算法的衡量 时间复杂度分析举例 1.3 算法和算法的衡量 四、算法的存储空间需求 1.3 算法和算法的衡量 四、算法的存储空间需求 1.4 算法描述 本课程中采用C/C++语言描述算法。 说明:C++语言中提供了一种引用运算符“”,引用是个别名,当建立引用时,程序用另一个已定义的变量或对象(目标)的名字初始化它,从那时起,引用作为目标的别名而使用,对引用的改动实际就是对目标的改动。 注意:Turbo C不支持引用类型。 编写一个函数swap1(x,y),当执行语句swap1(a,b)时,交换a和b的值。 void swap1(int x,int y) { int tmp; tmp=x;x=y;y=tmp; } 注意:a和b的值不会发生了交换。 为此,采用指针的方式来回传形参的值,需将上述函数改为: void swap2(int *x,int *y) {int tmp; tmp=*x; /*将x的值放在tmp中*/ *x=*y; /*将x所指的值改为*y*/ *y=tmp; /*将y所指的值改为tmp*/ } 上述函数的调用改为swap2(a,b),显然远不如采用引用方式简洁。 引入“引用”的概念 例如: int a=4; /*a为普通的整型变量*/ int b=a; /*b是a的引用变量*/ 这里说明b变量是变量a的引用,b也等于4,之后这两个变量同步改变。当a改变时b也同步改变,同样,当b改变时a也同步改变。 main() { int a=2; int b=a; printf(a=%d,b=%d\n,a,b); /*输出:a=2,b=2*/
文档评论(0)