- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4-数据结构-清华大学严蔚敏PPT-串
第5章 数组和广义表;5.1 数组的定义;5.1.1 数组的抽象数据类型定义 ; 由上述定义知,n维数组中有b1?b2 ? … ? bn个数据元素,每个数据元素都受到n维关系的约束。
2 直观的n维数组
以二维数组为例讨论。将二维数组看成是一个定长的线性表,其每个元素又是一个定长的线性表。
设二维数组A=(aij)m?n,则
A=(α1,α2,…,αp) (p=m或n)
其中每个数据元素αj是一个列向量(线性表) :
αj =(a1j ,a2j ,…,amj) 1≦j≦n
或是一个行向量:
αi =(ai1 ,ai2 ,…,ain) 1≦i≦m
如图5-1所示。; a11 a12 … a1n
a21 a22 … a2n
… … … … …
am1 am2 … amn;5.2 数组的顺序表示和实现;通常有两种顺序存储方式
⑴ 行优先顺序(Row Major Order) :将数组元素按行排列,第i+1个行向量紧接在第i个行向量后面。对二维数组,按行优先顺序存储的线性序列为:
a11,a12,…,a1n, a21,a22,…a2n ,……, am1,am2,…,amn
PASCAL、C是按行优先顺序存储的,如图5-2(b)示。
⑵ 列优先顺序(Column Major Order) :将数组元素按列向量排列,第j+1个列向量紧接在第j个列向量之后,对二维数组,按列优先顺序存储的线性序列为:
a11,a21,…,am1, a12,a22,…am2, ……, an1,an2,…,anm
FORTRAN是按列优先顺序存储的,如图5-2(c)。;图5-2 二维数组及其顺序存储图例形式; 设有二维数组A=(aij)m?n,若每个元素占用的存储单元数为l(个),LOC[a11]表示元素a11的首地址,即数组的首地址。
1 以“行优先顺序”存储
⑴ 第1行中的每个元素对应的(首)地址是:
LOC[a1j]=LOC[a11]+(j-1)?l j=1,2, …,n
(2) 第2行中的每个元素对应的(首)地址是:
LOC[a2j]=LOC[a11]+n?l +(j-1)?l j=1,2, …,n
… … …
⑶ 第m行中的每个元素对应的(首)地址是:
LOC[amj]=LOC[a11]+(m-1)?n?l +(j-1)?l j=1,2, …,n ; 由此可知,二维数组中任一元素aij的(首)地址是:
LOC[aij]=LOC[a11]+[(i-1)?n +(j-1)]?l (5-1)
i=1,2, …,m j=1,2, …,n
根据(5-1)式,对于三维数组A=(aijk)m?n?p,若每个元素占用的存储单元数为l(个),LOC[a111]表示元素a111的首地址,即数组的首地址。以“行优先顺序”存储在内存中。
三维数???中任一元素aijk的(首)地址是:
LOC(aijk)=LOC[a111]+[(i-1)?n?p+(j-1)?p+(k-1)]?l (5-2)
推而广之,对n维数组A=(aj1j2…jn) ,若每个元素占用的存储单元数为l(个),LOC[a11 …1]表示元素a11 …1的首地址。则 以“行优先顺序”存储在内存中。; n维数组中任一元素aj1j2…jn的(首)地址是:
LOC[aj1j2…jn]=LOC[a11 …1]+[(b2?…?bn)?(j1-1)
+ (b3?…?bn)?(j2-1)+ …
+ bn?(jn-1-1)+ (jn-1)] ?l (5-3);2 以“列优先顺序”存储
⑴ 第1列中的每个元素对应的(首)地址是:
LOC[aj1]=LOC[a11]+(j-1)?l j=1,2, …,m
(2) 第2列中的每个元素对应的(首)地址是:
LOC[aj2]=LOC[a11]+m?l +(j-1)?l j=1,2, …,m
… … …
⑶ 第n列中的每个元素对应的(首)地址是:
LOC[ajn]=LOC[a11]+ (n-1)?m?l +(j-1)?l j=1,2, …,m
由此可知,二维数组中任一元素
您可能关注的文档
最近下载
- 人工智能教学课件.ppt VIP
- 公司与员工签订车辆使用协议(2024两篇) .pdf VIP
- 小森LS-40印刷机保养操作指导07.pdf VIP
- 2024-2025学年深圳市育才三中小升初入学分班考试语文试卷附答案解析.pdf VIP
- 咖啡瑞幸咖啡美国上市招股说明书中文全译版本.pdf
- 2023年深圳市南山区育才三中小升初分班考试数学模拟试卷及答案解析.pdf VIP
- 涵管埋设施工技术方案.docx VIP
- 2018-2019、2021-2022年重庆邮电大学《808数字电路与逻辑设计》历年硕士真题汇总.pdf VIP
- 初中化学装置气密性的检验.pptx VIP
- 原理1-经济学概述.ppt VIP
文档评论(0)