《数据结构》课件(C语言)第01章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《数据结构》课件(C语言)第01章.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课件 语言 01
- 资源描述:
-
1、第一章第一章 绪论绪论第1页数数 据据 结结 构构主 讲:马慧芳 副教授办公地点:教9-C502电子邮件:联系电话:13919465723第一章第一章 绪论绪论第2页1、 什么是数据结构 2、 基本概念和术语 3、 抽象数据类型(ADT)4、 类C语言语法规则5、 算法的描述和算法分析第一章第一章 绪论绪论第3页一、一、数据结构数据结构教学计划教学计划英文名称 Data Structure先修课程 计算机导论、计算机高级语言、离散数学后续课程 操作系统、数据库技术、编译方法、人工 智能引论、信息系统原理与工程等授课学时 60学时上机实践 10机时第一章第一章 绪论绪论第4页配套题集 数据结构题
2、集,严蔚敏等编 清华大学出版社,2011.11参考教材1. Fundamentals of Data Structures in C ,李建中 张岩 李治军 译 机械工业出版社,2006.72. 数据结构:C语言描述 ,殷人昆著机械工业出版社,2011.63. 数据结构与算法分析,冯舜玺 译,机械工业出版社,2004.1注:可参考数据结构的C+语言方面的书籍。第一章第一章 绪论绪论第5页课程地位本课程不仅是一般的程序设计的基本训练,而且是设计和实现编译程序、操作系统、数据库系统、人工智能系统和其它系统程序的重要基础,是一门核心课程,对培养计算机及有关专业高层次科技人才具有重要意义。第一章第一章
3、 绪论绪论第6页课程任务课程任务讲授那些最重要、最常用的数据结构,阐明数据结构内在的逻辑关系,讨论它们在计算机中的存储表示,并结合各种典型应用说明它们在进行各种运算时的动态性质和实现操作的算法。第一章第一章 绪论绪论第7页第一章第一章 绪论绪论第8页章 次 内 容 授 课 学 时 一 二 三 四 五 六 七 八 九 十 绪 论 线 性 表 栈 和 队 列 串 数 组 和 广 义 表 树 和 二 叉 树 图 动 态 存 储 管 理 查 找 内 部 排 序 3 5 9 9 小 计 第一章第一章 绪论绪论第9页要求:、了解数据结构、算法的概念、基本的逻辑结构和存储结构、基本操作;、掌握类C语言体系和
4、抽象数据类型的概念;、知道算法的时间复杂性和空间复杂性概念。重点:、数据结构与算法的概念;、类C语言体系;、抽象数据类型。第一章第一章 绪论绪论第10页第一章第一章 绪论绪论第11页第一章第一章 绪论绪论第12页第一章第一章 绪论绪论第13页数据结构在计算机科学技术中是一门综合性的专业基础课专业基础课,计算机科学技术各个领域都要用到多种数据结构。在我国计算机各专业的教学计划中,它是核心课程之一。在我院教学计划中,数据结构已成为我院各专业一门公共必修课程。中国已列入93年计算机教程中。推荐学时为100学时。 其基本内容包括:基本数据结构,抽象数据类型基本数据结构,抽象数据类型,递归算法,复杂性分
5、析,排序和搜索,可计算性和,递归算法,复杂性分析,排序和搜索,可计算性和不可判定性,问题求解策略,并行和分布式算法不可判定性,问题求解策略,并行和分布式算法等。第一章第一章 绪论绪论第14页客观事物的符号表示,是计算机程序加工的原料。它是信息的载体,能被计算机识别、存储和加工处理。随着计算机软、硬件的发展,计算机应用领域的不断扩大,数据的含义也随之拓广。文字、表格、图像、声音、光和电的输入等等均可列入数据的范畴。第一章第一章 绪论绪论第15页是数据的基本单位,即数据这个集合中的一个实体。通常作为整体进行考虑和处理。有些情况下,数据元素也称为元素、结点、顶点、记录等。一个数据元素可能仅含一个数据
6、项,亦可包含若干个数据项。亦称字段、域,数据项是具有独立含义的不可分割的最小标识单位。第一章第一章 绪论绪论第16页性质相同的数据元素的集合,是数据的一个子集。数据对象可以是有限的,也可以是无限的。如:整数对象是集合N=0,1, 2,.;字母字符的集合等。第一章第一章 绪论绪论第17页简称类型简称类型,一个值的集合和定义在值集上的一组操作的总称。它显式地或隐含地规定了变量或表达式所有可能的取值范围以及在这些值上允许进行的操作。原子类型原子类型(Atomic Type):如C中的标量类型(整型、实型、字符型)以及指针类型等。结构类型结构类型(Structured Type):):亦称结构类型,如
7、C中的数组、记录、文件类型等。抽象数据类型抽象数据类型(Abstract Data Type, ADT):):下面有专门介绍。第一章第一章 绪论绪论第18页 对数据进行诸如查找、插入、删除、合并、排序、统计、简单计算、输入、输出等的操作过程。相互关联的元素之间的构成关系。这种关系可以是物理上的,也可以是逻辑上的,或其它关系。第一章第一章 绪论绪论第19页定义:是相互之间存在一种或多种特定关系的数据元素的集合。 组成:由某一数据对象及该对象中所有数据成员之间的关系组成。Data Structure = ( Data Object, Relationships ) 数据结构是指在程序中信息的逻辑组
8、织方法,一般来说,这种方法也受到所选择的程序设计语言的限制。2、基本概念和术语第一章第一章 绪论绪论第20页 数据的逻辑结构:指各数据元素之间的逻辑关系,是用户按使用需要建立起来的,呈现在用户面前的结构形式。 数据的物理结构:亦称数据的物理结构、存储结构,是指数据在计算机内的表示方法,即存储形式。2、基本概念和术语第一章第一章 绪论绪论第21页逻辑结构存储结构操作第一章第一章 绪论绪论第22页例例1: 一个线性表 逻辑结构:逻辑结构:哪个元素是表中第一个元素;哪个元素是表中最后一个元素;哪些元素在一个给定元素之前或之后;等等。 存储结构:存储结构:它的元素在存储器中是顺序地邻接存放,还是用指针
9、连接在一起的;等等。 运算:运算:在表中查找一个元素;从表中删去一个元素;向表中插入一个元素;等等。第一章第一章 绪论绪论第23页1)从逻辑角度看,数据可归结为四种基本结构:集合、线性结构、树结构和图结构2)从存储角度看,数据可归结为四种基本结构:顺序结构、链接结构、索引结构和散列结构第一章第一章 绪论绪论第24页集合集合:结构中的数据元素之间除“同属于一个集合”的关系,无其他关系第一章第一章 绪论绪论第25页 链接存储结构 不要求逻辑上相邻的结点其物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。 顺序存储结构 把逻辑上相邻的结点存储在物理位置上相邻存储单元里,结点间的逻辑关系由存
10、储单元的邻接关系来体现。 散列存储结构 根据结点的关键字直接计算出该结点的存储地址。 索引存储结构 通常在存储结点信息的同时,还建立附加的索引表,索引表中的每一项称为索引项,索引项的一般形式是:(关键字,地址),关键字是能唯一标识一个结点的那些数据项。第一章第一章 绪论绪论第26页删除(Delete) 删去数据结构中某个指定的数据元素。插入(Insert) 在数据结构中的指定位置上增添新的数据元素。 更新(Update) 改变数据结构中某个数据元素的值,在概念上等价于删除和插入操作的组合。查找(Find) 在数据结构中寻找满足某个特定要求的数据元素(位置或值)。第一章第一章 绪论绪论第27页排
11、序(Sort) (在线性结构中)重新安排数据元素之间的逻辑顺序关系,使之按值由小到大或大到小(即递增、不降或递减、不增)的次序排列。注:注:一般将插入、删除与修改统称为更新;查找亦称搜索(Search) 。 第一章第一章 绪论绪论第28页 同一种逻辑结构采用不同的存储方法,可以得到不同的存储结构。选择何种存储结构来表示相应的逻辑结构,主要是使其运算方便及根据算法的时空要求来具体确定。 常将同一逻辑结构的不同存储结构以不同的数据结构的命名。如线性表顺序表、链表、散列表。 给定了数据的逻辑结构和存储结构,若定义的运算集合及其运算的性质不同,也可能导致完全不同的数据结构。如线性表中的栈、队列、顺序栈
12、、链栈、链队列。第一章第一章 绪论绪论第29页抽象数据类型(Abstract Data Type,ADT)是指一个数学模型以及定义在这个模型上的一组操作。抽象数据类型仅取决于它的逻辑特性,与其在计算集中的表示无关。即无论其内部结构如何变化,只要它的数学特性没有变化,都不影响其外部使用。一个ADT的定义并不涉及它的实现细节,这些实现细节对于ADT的用户是隐蔽的封装性封装性/信息隐蔽信息隐蔽数据结构是ADT的物理实现。第一章第一章 绪论绪论第30页第一章第一章 绪论绪论第31页ADT包括以下三部分内容: ADT的规格说明(Specification) ADT的表示(Representation)
13、ADT的实现(Implementation)用元组表示:ADT = ( 数据对象, 关系集, 处理集 )3、抽象数据类型(ADT)第一章第一章 绪论绪论第32页本书的表示格式:ADT 抽象数据类型名 数据对象: 数据关系: 基本操作: ADT 抽象数据类型名3、抽象数据类型(ADT)用伪码表示基本操作名(参数表) 初始条件: 操作结果:第一章第一章 绪论绪论第33页 在具体实现时,完成任务的算法、数据类型、数据结构、程序的逻辑组织,甚至采用哪种程序设计语言都是可以自由选择的 与具体实现无关。 ADT的主要目的之一是对用户隐蔽所有的表示方法,算法的详细细节、实现操作的具体代码以及其它所有对外界不
14、必要的细节,都被局限于具体实现的模块内部,从而实现了信息的隐蔽。 ADT的一个重要优点是其简单性。ADT的目的是将数据的本质特征、它们的结构及操作同它们的非本质的具体表示及实现细节相区分开来,从而得到了简化。第一章第一章 绪论绪论第34页例4:在数据结构中,复数可定义为一种简单的抽象数据类型:Complex=(C,R)其中C是含有两个实数的集合C1,C2,R=P,P是定义在集合C上的一种关系,有序偶表示C1是复数的实部,C2是复数的虚部。第一章第一章 绪论绪论第35页Specification Complex元素(元素(Elements)元素的集合为两个实数的笛卡儿乘积 Z = R R 其中R
15、表示实数集,Z表示复数集。结构(结构(Structure)Complex的元素之间不存在任何结构,每一个元素表示定义在复数域Z中的一个孤立的值。第一章第一章 绪论绪论第36页ADT Complex Data Objects: D = C1,C2 | C1,C2 实数; Data Relationships: R = |C1,C2 实数 Operations: InitComplex( &T, E1, E2 ) 操作结果:构造复数,E1,E2分别代替C1,C2。 Add( &T, E1, E2 ); 初始条件:复数T已知 操作结果:E1,E2分别加C1,C2 Sub( &T, E1, E2 );
16、 初始条件:复数T已知 操作结果: E1,E2分别减C1,C2 ADT Complex第一章第一章 绪论绪论第37页抽象数据类型Complex具体的表示和实现依赖于所采用的计算机语言。用户可以用某种高级语言的固有数据类型和自定义数据类型,并借助于过程和函数来表示和实现抽象数据类型Complex。C语言表示如下:3、抽象数据类型(ADT)struct Complex real RealPart; real ImagPart;;第一章第一章 绪论绪论第38页在Complex上可定义下列操作1)函数InitComplex生成一个复数Z,Z=x+iyComplex InitComplex( real
展开阅读全文