- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]数据结构课件-1
第一章 绪论 1.1 什么是数据结构 用计算机解决问题一般步骤: 首先,从具体问题抽象出适当的数学模型; 其次,设计解此模型的算法; 最后,由此算法编写程序,调试、运行直至求出解答。 “抽象出的数学模型” “设计出模型的算法” [例1-1] 图书馆的书目检索系统自动化问题。 [例1-2]计算机与人对弈问题。(井字棋) [例1-3]多叉路口交通灯的管理问题。 通过以上几例可以直接地认为: 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。 《数据结构》课程的目标 “数据结构”课程的目标是要求学生学会分析数据对象特征,掌握数据组织方法和计算机的表示方法,以便为应用所涉及的数据选择适当的逻辑结构、存储结构及相应算法,初步掌握算法时间空间分析的技巧,培养良好的程序设计技能。 更重要的是通过数据结构的学习培养学生分析问题,解决问题的思维能力! 1.2 基本概念和术语 数据(Data):所有能输入到计算机中去的描述客观事物的符号。 数据元素(Data Element):是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单位。 数据对象(Data Object):是性质相同的数据元素的集合。是数据的一个子集。 数据结构(Data Structure):简单地说数据元素之间的“关系”即是结构。数据结构即是数据元素之间相互的关系(简单理解)。 一般,数据结构的研究包括三个方面:逻辑结构、物理结构、算法。 1.逻辑结构:抽象反映数据元素的逻辑关系。用二元组的方法表示,如下: Data_Structure=( D,S ) 逻辑结构通常分为四大类: 2.物理(存储)结构:数据结构在计算机中的存储表示称为数据的存储结构。它包括数据元素的表示和关系的表示。 存储结构分为: 顺序存储结构——借助元素在存储器中的相对位置来表示数据元素间的逻辑关系 链式存储结构——借助指示元素存储地址的指针表示数据元素间的逻辑关系 3.算法:定义在数据的逻辑结构上的算法,即施加于数据的操作。(如查询,插入,删除等操作) 4.数据结构三方面的关系 数据的逻辑结构、数据的存储结构及数据的运算三方面构成一个数据结构的整体。 存储结构是对数据项的存储。同一逻辑结构可用不同存储结构。 数据类型(Data type):高级语言中指数据的取值范围及其上可进行的操作的总称。 高级语言中数据类型可分为:原子类型和结构类型。 如:在C语言中 基本类型:整型、浮点型、字符型 构造类型:数组、结构、联合、指针、枚举型、自定义类型 抽象数据类型(Abstruct Data Type,简称ADT): ADT是指一个数学模型以及定义在该模型上的一组的操作。可以看作是数据的逻辑结构及其在逻辑结构上定义的操作。抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关。 1.3 抽象数据类型 抽象数据类型(Abstract Data Type 简称为ADT)可以看作是定义了一组操作的一个抽象模型。 本课程中所用到的描述抽象数据类型的工具是用类C语言的代码,它是C语言的一个子集,语法基本与C语言一致。 1.4 算法和算法分析 算法(algorithm):是对特定问题求解步骤的一种描述,算法是指令的有限序列,其中每一条指令表示一个或多个操作。 算法特性: 1.有穷性: 2.确定性: 3.可行性: 4.输入: 5.输出: 算法的评价—衡量算法优劣的标准 正确性(correctness):a,b,c,d四个层次 可读性(readability):方便阅读 健壮性(robustness):可容错 效率与低存储量 算法效率——用依据该算法编制的程序在计算机上执行所消耗的时间来度量。 1.事后统计 2.事前分析估算 时间复杂度 数据结构中为抛去计算机硬件及软件环境对算法的影响,主要讨论算法优劣,可简单认定算法工作量大小取决于问题的规模,或者说它是问题规模的函数。 时间复杂度(Time complexity):算法中基本操作重复执行的次数是问题规模n的某个函数,将算法的时间量度记作 T(n)=O(f(n)) 称作算法的渐近时间复杂度简称为时间复杂度。 语句频度(frequency count):是指该语句重复执行的次数。 [例1-4] 计算a、b语句的频度,及本程序段的时间复杂度。 for(i=1;i=n;++i) for(j=1;j=n;++j){ (a) c[i][j]=0; for(k=1;k=n;++k
您可能关注的文档
- [工学]数字电路第一章电子教案.ppt
- [工学]数字电路与逻辑设计_第6章_时序逻辑电路.ppt
- [工学]数字电路英文版PPT 第二单元.ppt
- [工学]数字通信原理与技术本科第5章.pdf
- [工学]数字电路逻辑设计ch5.ppt
- [工学]数字电路课件 第四章 组合逻辑电路 pp59.pdf
- [工学]数字逻辑10第二章4_syx.ppt
- [工学]数字逻辑复习2013.ppt
- [工学]数字通信第一章.ppt
- [工学]数字逻辑课程设计大纲、任务书、指导书.doc
- 建银国际证券-港股熊牛切换走向深化:新质生产力助力打开港股长期上升空间.pdf
- 国金证券-创业板50择时跟踪:2月进一步提升创业板50看涨比例.pdf
- 信用|关注存单和城投下沉的机会.pdf
- 政策半月观:三大方向进一步受重视.pdf
- 固定收益专题报告:建筑行业信用风险及投资价值全梳理.pdf
- AI行业跟踪报告第58期:华勤技术,AI云、端全线卡位,全面受益于AI落地.pdf
- 高频选股因子:大单因子表现继续反弹,AI增强组合持续回撤.pdf
- 投资策略研究*专题报告:科技引领“中国资产”价值重估进度加快.pdf
- 电子行业:高阶智驾加速普及,催动硬件快速放量.pdf
- 浙商证券-北汽蓝谷-600733-北汽蓝谷深度报告:联袂小马打造无人出租,携手华为进军全民智驾.pdf
文档评论(0)