- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章 绪论
1.1数据结构讨论的范畴
Niklaus Wirth
Algorithm + Data Structures = Programs
程序设计: 为计算机处理问题编制一组指令集
算法:处理问题的策略
数据结构:问题的数学模型
例如: 数值计算的程序设计问题
结构静力分析计算 ─━ 线性代数方程组
全球天气预报 ─━ 环流模式方程
非数值计算的程序设计问题
例一: 求一组(n个)整数中的最大值
算法: 基本操作是“比较两个数的大小”
模型:?
例二:计算机对弈
算法:对弈的规则和策略
模型:?
例三:足协的数据库管理
算法:需要管理的项目?如何管理?用户界面?
模型:?
简言之,数据结构讨论描述现实世界实体的数学模型及其上的操作在计算机中的表示和实现。
1.2 基本概念
一、数据与数据结构
数据: 所有能被输入到计算机中,且被计算机处理的符号的集合
是计算机操作的对象的总称
是计算机处理的信息的某种特定的符号表示形式
数据元素: 数据中的一个“个体”,数据结构中讨论的基本单位
数据项:数据结构中讨论的最小单位
数据元素是数据项的集合
姓名 俱乐部名称 出生日期 入队日期 职位 业绩 年 月 日 组合项
数据结构:带结构的数据元素的集合
例如一个含12位数的十进制数可以用三个4位的十进制数表示
3214,6587,9345 ─━ a1(3214),a2(6587),a3(9345)
在a1、a2和a3 之间存在“次序”关系 (a1,a2(、(a2,a3(
数据的逻辑结构
线性结构
树形结构
图状结构
集合结构
数据的存储结构 ─━ 逻辑结构在存储器中的映象
数据元素的映象方法:
用二进制位(bit)的位串表示数据元素
(321)10 ——→ (501)8 ——→ (101000001)2
A ——→(101)8 ——→ (001000001)2
关系的映象方法:(表示关系的基本单位是有序对(x,y()
顺序映象 以x和y存储位置的相对关系表示有序对x,y
最简单的方法就是使y和x的存储位置之间差一个常量C,
而C是一个隐含值,整个存储结构中只含数据元素本身的信息
例如:(a1,a2,a3)
a1 a2 a3
链式映象 x和y的存储位置随意,则需要用一个和x在一起的附加信息指示y的存储位置,这个附加信息和x绑定在一起,此时,两者合在一起作为x的存储映象
y x
通常可用高级编程语言中提供的数据类型描述之
例如:当用三个带有次序关系的整数表示一个长整数时,可以借用C语言的整数类型来表示:
typedef int Long_int[3]
二、抽象数据类型
是指一个数学模型以及定义在此数学模型上的一组操作
例如: 矩阵 +(求转置、加、乘、求逆、求特征值)
构成一个矩阵的抽象数据类型
数据结构+定义在此数据结构上的一组操作 = 抽象数据类型
抽象数据类型的描述方法
抽象数据类型可用(D,S,P)三元组表示
其中,D是数据对象,S是D上的关系集,P是对D的基本操作集。
ADT 抽象数据类型名 {
数据对象:〈数据对象的定义〉
数据关系:〈数据关系的定义〉
基本操作:〈基本操作的定义〉
} ADT 抽象数据类型名
其中,数据对象和数据关系的定义用伪码描述,基本操作的定义格式为
基本操作名(参数表)
初始条件:〈初始条件描述〉
操作结果:〈操作结果描述〉
基本操作有两种参数:赋值参数只为操作提供输入值;引用参数以打头, 除可提供输入值外,还将返回操作结果。
“初始条件”描述了操作执行之前数据结构和参数应满足的条件,若不满足,则操作失败,并返回相应出错信息。
“操作结果”说明了操作正常完成之后,数据结构的变化状况和应返回的结果。若初始条件为空,则省略之。
例一 抽象数据类型三元组的定义:
ADT Complex {
数据对象:D={e1,e2|e1,e2∈RealSet }
数据关系:R1={e1,e2 | e1是复数的实数部分,
| e2 是复数的虚数部分 }
基本操作:
InitComplex( Z, v1, v2 )
操作结果:构造复数
文档评论(0)