- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构 主讲教师:胡广义 电子信息科学系 Email:higery@163.com 主要内容 第一章 绪论 第二章 线性表 第三章 栈和队列 第四章 串 数据结构课程研究内容的定义 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和基本操作等等的学科。 数据结构研究的内容主要包括数据的逻辑结构、存储结构及其操作的定义和实现。 基本概念和术语 数据 数据元素 数据项 数据对象 数据结构 数据类型 抽象数据类型 数据和数据元素 数据:数据是信息的载体,是描述客观事物的数、字符、以及所有能输入到计算机中,被计算机程序识别和处理的符号(数值、字符等)的集合。 数据元素(数据成员): 是数据的基本单位。在不同的条件下,数据元素又可称为元素、结点、顶点、记录等。 1. 数据结构的定义 数据结构(定义一):是相互之间存在一种或多种特定关系的数据元素的集合。 数据结构(定义二) :是按照一定逻辑关系组织,并按一定存储方法存储的数据的集合,且需要定义一系列运算。 四种基本逻辑结构 集合: 结构中的数据元素除了同属于一种类型外,别无其它关系。 线性结构:结构中的数据元素之间存在一对一的关系。 树型结构:结构中的数据元素之间存在一对多的关系。 图状结构或网状结构: 结构中的数据元素之间存在多对多的关系。 数据的逻辑结构 数据的存储结构 数据结构(逻辑结构)在计算机中的表示称为存储结构,或物理结构。 它包括数据元素的表示和关系的表示。 存储结构 算法的重要特征 有穷性 确定性 可行性 输入 输出 1.有穷性 对于任意一组合法输入值,在执行有穷步骤之后一定能结束,即:算法中的每个步骤都能在有限时间内完成; 2.确定性 对于每种情况下所应执行的操作,在算法中都有确切的规定,使算法的执行者或阅读者都能明确其含义及如何执行。并且在任何条件下,算法都只有一条执行路径; 3.可行性 算法中的所有操作都必须足够基本,都可以通过已经实现的基本操作运算有限次实现之; 4.有输入 作为算法加工对象的量值,通常体现为算法中的一组变量。有些输入量需要在算法执行过程中输入,而有的算法表面上可以没有输入,实际上已被嵌入算法之中; 5.有输出 它是一组与“输入”有确定关系的量值,是算法进行信息加工后得到的结果,这种确定关系即为算法的功能。 算法设计的要求 正确性 可读性 健壮性 效率与低存储量需求 第二章 线性表 2.1 线性表的抽象数据类型描述 2.2 线性表的顺序表示和实现 2.3 线性表的链式表示和实现 总述 2章~ 4章讨论线性结构 线性结构的特点是: 1、集合中必存在唯一的一个 “第一元素” 2、集合中必存在唯一的一个 “最后元素” 3、除第一元素外,均有唯一的前驱; 4、除最后元素外,均有唯一的后继。 线性表的顺序存储 线性表的顺序表示,就是线性表的顺序存储,即用一组地址连续的存储单元依次存储线性表的数据元素。 由此可得: LOC(a i+1)=LOC(ai)+L LOC(a i)=LOC(a1)+(i-1)×L 特点 以数据元素在计算机内“物理位置相邻”来表示表中数据元素间的逻辑关系。 对于这种存储方式,要访问第i个数据元素,就可以直接计算出ai的存储位置Loc(ai),因而能随机存取表中任一数据元素。换言之,数据元素在顺序表中的存储位置取决于该数据元素在线性表中的序号。因此线性表的顺序存储结构是一种随机存取的存储结构。 链表是非随机存取的结构 在线性表的链式存储结构中,数据元素之间的逻辑关系是由结点中的指针指示的,即指针为数据元素之间的逻辑关系映像。逻辑上相邻的两个数据元素其存储的物理位置不要求紧邻。由此这种存储结构为非顺序映像,或链式映像。 链表是非随机存取的存储结构 链式存储结构的优缺点 说明 链表中,即使知道被访问结点的序号i,也不能象顺序表中那样直接按序号i访问结点,而只能从链表的头指针出发,顺链域next逐个结点往下搜索,直到搜索到第i个结点为止。 因此,链表是非随机存取结构。 链表的一个结点 一个结点包含两个域:数据域和指针域。 n个结点(内存映像)就连接成为一个链表。由于每个结点中只包含一个指针域,故又称为线性链表或单链表。 注意 整个链表的存取从头指针开始,头指针指示链表中第一个结点的存储位置。 最后一个数据元素没有直接后继,故最后一个结点指针域为“空”(NULL)。 第二章小结 随机存取结构与非随机存取结构 顺序表的基本操作 单链表的基本操作 什么是静态链表 双向链表的插入与删除 第三章 栈和队列 1. 栈的基本概念 栈(Stack)限制在表尾进行插入和删除运算的线性表。对于栈而言,表尾具有特殊含义,称为栈顶(Top);表头称为栈底(Bottom)。 当表中没有元素时称为空
文档评论(0)