- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构绪论讲解
数据结构;教材
?数据结构 ?(C语言版)严蔚敏等编著,清华大学出版社
参考书
?数据结构 ?(用面向对象方法与C++描述)
殷人昆等编著,清华大学出版社;什么是数据结构
基本概念和术语
抽象数据类型
算法分析
性能分析与度量;学生成绩表格;选课单;UNIX文件系统结构图;在应用程序中涉及到各种各样的数据,如何在计算机中组织、存储、传递数据,需要讨论它们的归类及它们之间的关系,从而建立相应的数据结构,依此实现软件功能。
综上,描述这类非数值计算问题的数学模型不是数学方程,而是树、表和图之类的数据结构。
因此从广义上讲,数据结构描述现实世界实体的数学模型及其上的操作在计算机中的表示和实现.;基本概念和术语;数据元素(Data Element)
数据的基本单位。在计算机程序中常作为一个整体进行考虑和处理。
有时一个数据元素可以由若干数据项(Data Item)组成。数据项是具有独立含义的最小标识单位。
数据元素又称为元素、结点、记录
;数据项(Data Item)
?;数据对象 (data object)
具有相同性质的数据元素的集合。
整数数据对象
N = { 0, ?1, ?2, … }
字母字符数据对象
C={ ‘A’, ‘B’, ‘C’, … ‘F’ }
;数据结构(Data Structure)
形式定义:
某一数据对象的所有数据成员之间的关系。记为:
Data_Structure = {D, S}
其中,D 是某一数据对象, S 是该对象中所有数据成员之间的关系的有限集合。
;四个基本结构
集合
线性结构
树形结构
网状结构;数据的逻辑结构
从逻辑关系上描述数据,与数据的存储无关;
从具体问题抽象出来的数据模型;
与数据元素本身的形式、内容无关;
与数据元素的相对位置无关。;数据的逻辑结构分类
线性结构
线性表
非线性结构
树
图(或网络)
;bin;堆结构;数据的存储结构(物理结构)
数据结构在计算机中的表示。
数据的存储结构依赖于计算机语言。
顺序存储表示
链接存储表示
索引存储表示
散列存储表示;抽象数据类型(Abstract Data Type);抽象数据类型
是指一个数学模型以及定义在此数学模型上的一组操作
数据结构+定义在此数据结构上的一组操作 = 抽象数据类型
例如:矩阵 +(求转置、加、乘、
求逆、求特征值)
构成一个矩阵的抽象数据类型
;抽象数据类型的描述
抽象数据类型可用(D,S,P)三元组表示
其中,D是数据对象,S是D上的关系集,P是对D的基本操作集。
ADT 抽象数据类型名 {
数据对象:〈数据对象的定义〉
数据关系:〈数据关系的定义〉
基本操作:〈基本操作的定义〉
} ADT 抽象数据类型名;其中,数据对象、数据关系用伪码描述;基本操作定义格式为
基本操作名(参数表)
初始条件:〈初始条件描述〉
操作结果:〈操作结果描述〉
基本操作有两种参数:赋值参数只为操作提供输入值;引用参数以打头, 除可提供输入值外,还将返回操作结果。
“初始条件”描述了操作执行之前数据结构和参数应满足的条件,若不满足,则操作失败,并返回相应出错信息。
“操作结果”说明了操作正常完成之后,数据结构的变化状况和应返回的结果。若初始条件为空,则省略之。;抽象数据类型的表示和实现
抽象数据类型可以通过固有数据类型(高级编程语言中已实现的数据类型)来实现
抽象数据类型 类 class
数据对象 数据成员
基本操作 成员函数(方法)
在C++中,类的成分(数据成员和成员函数)可以有三种访问级别
Private 私有成分(只允许类的成员函数进行访问)
protected 保护成分(只允许类的成员函数及其子孙类进行访问)
public 公有成分(允许类的成员函数、类的实例及其子孙类、子孙类的实例进行访问)
;算法分析;算法设计
例子: 选则排序
问题:递增排序
解决方案:逐个选择最小数据
算法框架: for ( int i = 0; i n-1; i++ ) { //n-1趟 从a[i]检查到a[n-1]; 若最小整数在a[k], 交换a[i]与a[k];
}
细化:Select Sort
;void selectSort ( int a[ ], int n ) {
//对n个整数a[0],a[1],…,a[n-1]按递增顺序排序
for ( int i = 0; i n-1; i++ ) {
int k = i;
您可能关注的文档
最近下载
- 山东省泰安市2025届高三四模检测(泰安四模)英语试题及答案.docx VIP
- 2024-2025学年深圳中学初中部七年级入学分班考试数学试卷附答案解析.pdf
- GB50424-2015 油气输送管道穿越工程施工规范.docx VIP
- (2025秋新版)人教版三年级数学上册全册教案.docx
- 采矿工程毕业设计论文-麦地掌煤矿150万吨矿井初步设计.doc VIP
- 德隆煤矿90万吨初步设计.doc VIP
- 2025年山东黄金集团井下技能工人招聘(2000人)考试备考题库及答案解析.docx VIP
- 直肠癌手术编码.pptx VIP
- 2025秋统编版(2024)道德与法治一年级上册教学设计(全册) .pdf
- Unlock2 Unit4 第一篇听力讲解及答案.pptx VIP
文档评论(0)