数据结构课件.pdf

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

第五章数组和广义表

§多维数组

§矩阵的压缩存储

§广义表

5.1数组的定义

图5.1Am×n的二维数组

图5.2矩阵Am×n看成n个列向量的线性表

•数组一般不做插入和删除操作,因此采用顺序

存储结构。由于存储单元是一维结构,而数组

是多维结构,则用一组连续存储单元存放数组

的数据元素就有个次序约定问题。

数组的顺序存储结构有两种:一种是按行序存储,

如高级语言BASIC、C和PASCAL语言都是以行

序为主;

a11,a12,…,a1n,a21,a22,…,a2n,…,am1,

am2,…,amn

另一种是按列优先存储,如高级语言中的

FORTRAN语,以列优先的存储序列为:

a11,a21,…,am1,a12,a22,…,am2,…,

a1n,a2n,…,amn

假设有一个3×4×2的三维数组A,共有24个元素,其逻

辑结构如图5.4所示。

图5.4三维数组的逻辑结构图

三维数组元素的标号由三个数字表示,即行、列、纵三个

方向。a142表示第1行,第4列,第2纵的元素。如果对A3×4×2(

下标从1开始)采用以行为主序的方法存放,即行下标变化最

慢,纵下标变化最快,则顺序为:

a111,a112,a121,a122,a131,a132,a141,a142,

a341,a342

采用以纵为主序的方法存放,即纵下标变化最慢,行下

标变化最快,则顺序为:

a111,a211,a311,a121,a221,a321,…,a132,a232,

a332,a142,a242,a342

n一维数组存储方式

a,i=0

LOC(i)=

LOC(i-1)+l=a+(i-1)*l+l,i0

0123456789

a35274918605477834102

llllllllll

a+i*l

LOC(i)=LOC(i-1)+l=a+i*l

二维数组

行优先存放:

设数组开始存放位置LOC(0,0)=a,每个元素

占用l个存储单元

一般LOC(i,j)=a+((i-1)*m+j-1)*l

C语言中LOC(i,j)=a+(i*m+j)*l

三维数组

§各维元素个数为m,m,m

§

123

§下标为i,i,i的数组元素的存储地址:

123

§(按行优先存放)

LOC(i,i,i)=a+

123

[(i1-1)*m2*m3+(i2-1)*m3+(i3-1)]

*l

LOC(i,i,i)=a+

123

(i*m*m+i*

文档评论(0)

152****4379 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档