- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构PPT(课件) 绪论教学讲义.ppt
数据结构 DATA STRUCTURE;第一章 绪论;1.1什么是数据结构;很多数值计算问题的数学模型通常可用一组线性或非线性的代数方程组或微分方程组来描述.如:
预报人口增长
天气预报
梁架结构
而大量非数值计算问题的数学模型正是本门课程要讨论的数据结构。;
例1:求一组(n)整数中的最大值
算法:基本操作是比较两个数的大小
模型:n的大小
;;
数据结构就是研究非数值计算的程序设计中计算机的操作对象以及它们之间的关系和操作;1.2基本概念;数据结构的形式定义
数据结构是一个二元组:
Data-Structure=(D,S)
其中:D是数据元素的有限集,S是D上关系的有限集。
例 复数的数据结构定义如下:
Complex=(C,R)
其中:C是含两个实数的集合﹛C1,C2﹜,分别表示复数的实部和虚部。R={P},P是定义在集合上的一种关系{〈C1,C2〉}。
;例 教师指导研究生,而每位研究生指导一至两名本科生。
定义数据结构
Group=(P,R)
其中:P={T,G1,…,Gn,S11,…,Snm}
R={R1,R2}
R1={T,Gi|1≤i ≤n,1 ≤ n ≤3}
R2={Gi,Sij| 1≤i ≤n, 1≤j≤m, 1 ≤ n ≤3,
1 ≤ m ≤2};数据结构依据视点的不同,分为数据逻辑结构和物理结构.
逻辑结构:从解决问题的需要出发,为实现必要的功能所建立的数据结构,它属于用户的视图,是面向对象的。
物理结构:指数据该如何在计算机中存放,是数据逻辑结构的物理存储方式,是属于具体实现的视图,是面向计算机的。
关系:物理结构是逻辑数据的存储映象
;数据结构通常分为四类基本结构:
一、集合 结构中的数据元素除了同属于一种类型外,别无其它关系。
二、线性结构 结构中的数据元素之间存在一对一的关系。
三、树型结构 结构中的数据元素之间存在一对多的关系。
四、图状结构或网状结构 结构中的数据元素之间存在多对多的关系。
;数据的物理结构(存储结构)
数据元素的表示:元素或结点
(321)10=(101000001)2
A=(001000011)2
数据元素的关系的表示:
有序对表示;有序对的表示方法
顺序存储结构:用数据元素在存储器中的相对位置来表示数据元素之间的逻辑关系。
链式存储结构:在每一个数据元素中增加一个存放地址的指针(pointer),用此指针来表示数据元素之间的逻辑关系。;;数据类型:一个值的集合和定义在这个值集上的一组操作的总称
例:在C语言中
数据类型:基本类型和结构类型
基本类型:整型、浮点型、字符型
结构类型:数组、结构、指针、枚举型、自定义
;抽象数据类型 (ADT: Abstract Data Types)
一个数学模型以及定义在该模型上的一组操作
ADT两个重要特性
数据抽象:强调本质特征,其完成的功能和用户接口
数据封装:把实体的外部特征和内部实现细节分离,并对外部用户隐藏其实现细节
;;抽象数据类型的定义:
ADT:抽象数据类型名{ 数据对象:数据对象的定义 数据关系:数据逻辑关系的定义 基本操作:基本操作的定义
}ADT 抽象数据类型名
数据对象和数据关系的定义用伪代码表示
基本操作的定义:
操作名(参数表)
初始条件:初始条件描述 操作结果:操作结果描述
;ADT Complex{
数据对象:
D={C1,C2|C1,C2是实数}
数据关系:
R={C1,C2|C1是实部,C2是虚部}
基本操作:
InitComplex(z,v1,v2)
操作结果:构造复数
DestoryComplex(z)
操作结果:复数被销毁
GetReal(z,realPart)
初始条件:复数已经存在
操作结果:用realPart返回复数的实部
GetImag(z,imagPart)
初始条件:复数已经存在
操作结果:用imagPart返回复数的虚部
Add(z1,z2,Sum)
初始条件:Z1,Z2是复数
操作结果:用sum返回Z1,Z2的和值
}ADT Complex
;1.3抽象数据类型的表示和实现;赋值语句
交换赋值 a1-a2
条件赋值 z=(ab)?a:b
选择语句
if (ab)
z=a;
Else
z=b;
Switch(a1)
{
Case ‘1’: printf(1);break;
Case ‘2’: printf(2);break;
default
}
;循环语句
for(i=0;i10;i++){}
Whil
文档评论(0)