数据结构与算法大全复习资料.doc

  1. 1、本文档共374页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

何谓数据结构

数据结构是在整个计算机科学与技术领域上广泛被使用的术语。它用来反映一个数据

的内部构成,即一个数据由那些成分数据构成,以什么方式构成,呈什么结构。数据结构有

逻辑上的数据结构和物理上的数据结构之分。逻辑上的数据结构反映成分数据之间的逻辑关

系,而物理上的数据结构反映成分数据在计算机内部的存储安排。数据结构是数据存在的形

式。

数据结构是信息的一种组织方式,其目的是为了提高算法的效率,它通常与一组算法

的集合相对应,通过这组算法集合可以对数据结构中的数据进行某种操作。

数据结构主要研究什么?

数据结构作为一门学科主要研究数据的各种逻辑结构和存储结构,以及对数据的各种

操作。因此,主要有三个方面的内容:数据的逻辑结构;数据的物理存储结构;对数据的操

作(或算法)。通常,算法的设计取决于数据的逻辑结构,算法的实现取决于数据的物理存

储结构。

什么是数据结构?什么是逻辑结构和物理结构?

数据是指由有限的符号(比如,0和1,具有其自己的结构、操作、和相应的语义)

组成的元素的集合。结构是元素之间的关系的集合。通常来说,一个数据结构DS可以表

示为一个二元组:

DS=(D,S),//i.e.,data-structure=(data-part,logic-structure-part)

这里D是数据元素的集合(或者是“结点”,可能还含有“数据项”或“数据域”),S是定

义在D(或其他集合)上的关系的集合,S={R|R:D×D×...},称之为元素的逻辑结构。

逻辑结构有四种基本类型:集合结构、线性结构、树状结构和网络结构。表和树是最

常用的两种高效数据结构,许多高效的算法可以用这两种数据结构来设计实现。表是线性结

构的(全序关系),树(偏序或层次关系)和图(局部有序(weak/localorders))是非线性结

构。

数据结构的物理结构是指逻辑结构的存储镜像(image)。数据结构DS的物理结构P

对应于从DS的数据元素到存储区M(维护着逻辑结构S)的一个映射:

P:(D,S)--M

存储器模型:一个存储器M是一系列固定大小的存储单元,每个单元U有一个唯一的地

址A(U),该地址被连续地编码。每个单元U有一个唯一的后继单元U=succ(U)。

P的四种基本映射模型:顺序(sequential)、链接(linked)、索引(indexed)和散列(hashing)

映射。

因此,我们至少可以得到4×4种可能的物理数据结构:

(sets)

sequential

lists

linked

trees

indexed

graphs

hash

(并不是所有的可能组合都合理)

数据结构DS上的操作:所有的定义在DS上的操作在改变数据元素(节点)或节点的域时

必须保持DS的逻辑和物理结构。

DS上的基本操作:任何其他对DS的高级操作都可以用这些基本操作来实现。最好将DS

和他的所有基本操作看作一个整体——称之为模块。我们可以进一步将该模块抽象为数据类

型(其中DS的存储结构被表示为私有成员,基本操作被表示为公共方法),称之为ADT。

作为ADT,堆栈和队列都是一种特殊的表,他们拥有表的操作的子集。

对于DATs的高级操作可以被设计为(不封装的)算法,利用基本操作对DS进行处理。

好的和坏的DS:如果一个DS可以通过某种“线性规则”被转化为线性的DS(例如线性表),

则称它为好的DS。好的DS

文档评论(0)

智乾 + 关注
实名认证
内容提供者

科技工作者

1亿VIP精品文档

相关文档