第二篇 数据结构.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二篇 数据结构.doc

第二篇 数据结构 早期的程序设计主要偏重于数值计算领域,采用的数据结构相对简单。例如FORTRAN语言仅定义了数组(包括多维数组)和复数两种结构型数据,这两种数据类型足以应付当时多数的科学计算问题。但是随着现代科技的发展,计算机逐渐应用于数据处理和非数值计算问题,从客观事物中抽象出的数据日益显现出多样化的特征,简单的数据类型已远远不能满足需要,各数据元素之间的复杂联系已经不是普通的数学方程式所能表达的了。在这种背景下,一种专门研究数据之间结构关系的学科—数据结构便应运而生。 数据结构专门研究各种数据的表示、数据的类型以及它们之间关系的集合,其研究范围主要包括各种数据结构的性质,即它们的逻辑结构、物理结构以及施于其上的操作。数据结构的类型种类繁多,可以从不同的角度来划分:若从数据元素的值在使用时具有不可分割的性质或者是它可以由更基本的成份组成这个角度来划分,数据结构可以分成简单类型和构造类型两大类;如果从数据所占据的内存空间在程序执行期间是否发生变化这个角度来划分,数据结构又可以分成静态结构和动态结构两大类;如果从数据结点后继关系的多少和是否具有层次性的角度划分,数据结构还可以分成线性结构和非线性结构两大类。表5给出了数据结构的一般分类 简单类型 整型、实型、字符型、布尔型 静态数据类型 构造类型 数组、记录、集合、字符串 文件、指针 动态数据的类型 线性结构 数组、栈、队列、链表、串 非线性结构 树、图 表5 通常高级程序设计语言都提供了各种简单类型、静态构造类型和动态构造类型的数据结构。例如PASCAL就提供了12种类型的定义。这12种类型中除了文件和指针属于动态结构的构造类型外,其余10种均属于简单类型和静态构造类型。在表5的数据结构中,像数组、栈、串和队列等数据结构属于线性数据结构,而树和图属于非线性数据结构。线性数据结构易于表示各结点之间的联系,其存储方式相对简单;非线性数据结构往往能比较形象地反映各结点之间的层次关系。无论是线性结构或非线性结构,若采用数组方式存储,则属于静态数据类型;若采用指针类型存储,则属于动态数据类型。考虑到篇幅限制和读者具备了Pascal语言的基础,我们侧重讲解线性结构和非线性结构两种,在分析程序时不提供可直接上机运行的源代码,而是采用贴近自然语言的类Pascal来描述算法的基本思想和步骤,为读者上机实践留下空间。 第五章 顺序存储结构的线性表 线性表是最常用且比较简单的一种数据结构,它是由有限个数据元素组成的有序集合,每个数据元素有一个数据项或者含多个数据项。例如26个英文字母表(A,B,……,Z)是一个线性表,表中每一个数据元素由单个字母组成数据项。又如表5.1也是一个线性表,表中含8个数据元素,每一个数据元素由n个选手在该项目的竞赛成绩组成。 学生 项目 学生1 …… 学生j …… 学生n 项目总分 项目1 …… 项目I xij …… 项目8 选手总分sum Sum xj= 表5.1 线性表具有如下结构特征: 均匀性:即同一线性表的各数据元素的数据类型一致且数据项数相同; 有序性:表中数据元素之间的相对位置是线性的,即存在唯一的“第一个”和“最后一个”数据元素。除第一个和最后一个外,其它元素前面均只有一个数据元素(直接前趋)和后面均只有一个数据元素(直接后继)。 按照表中数据元素的存储方式分顺序存储结构和链式存储结构二类线性表 1.顺序存储结构 顺序存储结构是指用一组地址连续的存贮单元依次存储线性表的元素,通常用数组实现。数组的物理实现是一块连续的存储空间,它是按首址(表中第1个元素的地址)十位移来访问每一个元素的。设 loc(a[i])—A表中元素i的内存地址(c≤i≤d); loc(b[i,j])i,j)元素的内存地址(c1≤i≤d1,c2j≤d2); loc(a[i])=loc(a[c])+(i-c)*la la—atype类型的长度; 首址 位移 loc(b[i,j])=loc(b[c1,c2])+((d2-c2+1)*(i-c1)+(j-c2))*lb lbbtype类型的长度; 首址 位移 一维数组按照下标递增的顺序访问表中元素 a[c]→a[c+1]→……→a[d] 二维数组按照先行后列的顺序访问表中元素 b

文档评论(0)

cai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档