1 / 38
文档名称:

数据结构 数组.ppt

格式:ppt   大小:2,485KB   页数:38页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构 数组.ppt

上传人:文库新人 2021/10/29 文件大小:2.43 MB

下载得到文件列表

数据结构 数组.ppt

相关文档

文档介绍

文档介绍:数据结构 数组
第一页,共38页
● 数组的基本概念
数组可以看成是线性表的一种扩展,表中的元素本身也是一种数据结构,但所有的元素都属于同一类型。
第二页,共38页
● 数组的定义及逻辑结构
例如:二维数组可以看成“数组元素是一维数组”的一维数组,三维数组可以看成“数组元素是二维数组”的一维数组,依次类推。一个m行×n列的二维数组。
a11
a12

a1n
a21
a22

a2n




am1
am2

amn
Am×n=
第三页,共38页
数组是一个固定格式和数量的数据有序列,每个数组元素用惟一的一组下标标识。
  数组的基本操作:
⑴取值操作:给定一组下标,读其对应的数组元素。
⑵赋值操作:给定一组下标,存储或修改与其相对应的数组元素。
● 数组的定义及逻辑结构
第四页,共38页
● 数组的顺序存储结构
在内存中,数据元素在存储器中的相对位置来表示数据元素之间的逻辑关系。
  对于一维数组按下标顺序分配即可。  
  对于多维数组的分配,要把它的元素映像在一维存储器中,一般有两种存储方式,即“以行(序)为主(序)”的映象方法和“以列(序)为主(序)”的映象方法。
  “以行为主”的存储结构: 将数组中的数据元素“按行依次排放”在存储器中;
  “以列为主”的存储结构: 将数组中的数据元素“按列依次排放”在存储器中。
第五页,共38页
● 数组的顺序存储结构
LOC(A1 (1) )=LOC(a11)
a11
a12

a1n
LOC(A2 (1) )=LOC(a21)
a21
a22

a2n

LOC(Am(1) )=LOC(am1)
am1
am2

amn
LOC(A1 -(1) )=LOC(a11)
a11
a21

am1
LOC(A2 -(1) )=LOC(a12)
a12
a22

am2

LOC(An-(1) )=LOC(a1n)
a1n
a2n

amn
A1 (1)
A2 (1)
Am(1)
A1 -(1)
A2 -(1)
An -(1)
(a) 以行为主序
(b) 以列为主序
第六页,共38页
由下标计算数组元素的存储位置:
  假设每个数据元素占L个存储单元
⒈ 一维数组A(n)
  任意元素ai的存储位置
  LOC(ai)=LOC(a0)+i*L /*假设数组下标界从0开始*/
第七页,共38页
● 数组的顺序存储结构
⒉ 二维数组A(m×n)
  一个2×3的二维数组,其逻辑结构和内存映像如下。
a11
a12
a13
a21
a22
a23
2×3数组的逻辑结构
a11
a12
a13
a21
a22
a23
a11
a21
a12
a22
a13
a23
以行为主序内存映像
以列为主序内存映像
第八页,共38页
假设二维数组 A[m][n] 中每个数据元素占L个存储地址,并以 LOC(aij) 表示下标为 (i,j) 的数据元素的存储地址,则数据元素在“以行为主”的顺序映象中的存储地址为:
LOC(aij) =
在C语言中,数组中每一维下标界定义为0,则
LOC(aij) = /*假设数组下标界从0开始*/
● 数组的顺序存储结构
LOC(a11) + ((i-1)*n+j-1)*L /*假设数组下标界从1开始*/
LOC(a00) + (i*n+j)*L
第九页,共38页
*
练****br/>已知二维数组A[1..3,1..5]的存储首地址为100,它采用以行为主的顺序存储,且每个元素占用4个字节
LOC (a2,4 )=
100+[(2-1)*5+4-1]*4
= 132
第十页,共38页