数据结构数组幻灯片.ppt
《数据结构数组幻灯片.ppt》由会员分享,可在线阅读,更多相关《数据结构数组幻灯片.ppt(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构数组第1页,共42页,编辑于2022年,星期六定义:定义:相同类型的数据元素的集合。相同类型的数据元素的集合。一维数组的一维数组的示例:示例:35 27 49 18 60 54 77 83 41 020 1 2 3 4 5 6 7 8 9一维数组一维数组2.4.1 数组的定义数组的定义第2页,共42页,编辑于2022年,星期六数组的定义和初始化数组的定义和初始化main()int a13=3,5,7,*elem;for(int i=0;i 3;i+)printf(“%d”,a1i,“n”);/静态数组静态数组 elem=a1;for(int i=0;i 0 a,i=0 a+i*la2.
2、4.1 数组的定义数组的定义第4页,共42页,编辑于2022年,星期六二维数组:二维数组:类似于线性表,一个二维数组的逻辑结构可形类似于线性表,一个二维数组的逻辑结构可形式地表示为:式地表示为:2_Array=(D,R)D=aij(i=0,1,m-1,j=0,1,n-1),aij是同类型数据元素的集是同类型数据元素的集合。合。R=ROW,COL是数据元素上关系的集合。是数据元素上关系的集合。2.4.1 数组的定义数组的定义a11 a12 a13 a1na21 a22 a23 a2nam1 am2 am3 amn ai,j-1 aij ai,j+1 ai-1,j ai+1,j Am,n=第5页,
3、共42页,编辑于2022年,星期六a aij ij受行列两个关系的约束:第受行列两个关系的约束:第受行列两个关系的约束:第受行列两个关系的约束:第i i行的行向量,第行的行向量,第行的行向量,第行的行向量,第j j列的列向列的列向列的列向列的列向量。量。量。量。ROW=|0 i m-1,0 j n-2每一行上的列关系。每一行上的列关系。aij ij的行前趋的行前趋的行前趋的行前趋a ai,j-1i,j-1,a aij ij的行后继的行后继的行后继的行后继a a i,j+1COL=|0 i m-2,0 j n-1每一列上的行关每一列上的行关系。系。a aij ij的列前趋的列前趋的列前趋的列前趋
4、a ai-1,ji-1,j,aij ij的列后继的列后继a i+1,j2.4.1 数组的定义数组的定义第6页,共42页,编辑于2022年,星期六行行优先存放优先存放(例:例:pascal、C语言语言):设数组开始存放位置设数组开始存放位置 LOC(0,0)=a,每个元素占用每个元素占用 l 个存储个存储单元单元 LOC(i,j)=a+(i n+j)l2.4.2 数组的顺序存储结构数组的顺序存储结构约定存放次序:约定存放次序:因为计算机的存储单元是一维的,数组可以是多维的,因为计算机的存储单元是一维的,数组可以是多维的,所以必须约定存放次序。所以必须约定存放次序。第7页,共42页,编辑于2022
5、年,星期六n n列列优先存放优先存放(例:例:Fortran Fortran语言语言):设数组开始存放位置设数组开始存放位置 LOC(0,0)=a,每个元素占用每个元素占用 l 个个存储单元存储单元 LOC(i,j)=a+(j m+i)l2.4.2 数组的顺序存储结构数组的顺序存储结构第8页,共42页,编辑于2022年,星期六三维数组:三维数组:各维元素个数为各维元素个数为 m1,m2,m3下标为下标为 i1,i2,i3的数组元素的存储地址:的数组元素的存储地址:(按页按页/行行/列存放列存放)LOC(i1,i2,i3)=a+(i1 m2 m3+i2 m3+i3)*l 前前i1页总页总元素个数
6、元素个数第第i1页的页的前前i2行总行总元素个数元素个数2.4.2 数组的顺序存储结构数组的顺序存储结构第第i1页的页的第第i2行行i3列列前前元素个元素个数数第9页,共42页,编辑于2022年,星期六下标为下标为 i1,i2,i3的数组元素的存储地址:的数组元素的存储地址:(按列按列/行行/页存放页存放)LOC(i1,i2,i3)=a+(i3 m1 m2+i2 m1+i1)*l 前前i3列总列总元素个数元素个数第第i3列的列的前前i2行总行总元素个数元素个数2.4.2 数组的顺序存储结构数组的顺序存储结构第第i3列的列的第第i2行行i1页页前前元素个元素个数数第10页,共42页,编辑于202
7、2年,星期六 n 维数组:维数组:各维元素个数为各维元素个数为m1,m2,m3,mn 下标为下标为 i1,i2,i3,in 的数组元素的存储地址:的数组元素的存储地址:LOC(i1,i2,in)=a+(i1 m2 m3 mn+i2 m3 m4 mn+in-1 mn+in)l 2.4.2 数组的顺序存储结构数组的顺序存储结构第11页,共42页,编辑于2022年,星期六 二维数组二维数组 三维数组三维数组 行向量行向量 下标下标 i1 页向量页向量 下标下标 i1 列向量列向量 下标下标 i2 行向量行向量 下标下标 i2 列向量列向量 下标下标 i3第12页,共42页,编辑于2022年,星期六特
8、殊矩阵的压缩存储特殊矩阵的压缩存储特殊矩阵:特殊矩阵:是指非零元素的分布有一定规律是指非零元素的分布有一定规律/大量零元素的矩阵。大量零元素的矩阵。压缩存储:压缩存储:针对阶数很高的特殊矩阵。为节省针对阶数很高的特殊矩阵。为节省存储空间,可以不存储零元素或对称元素。存储空间,可以不存储零元素或对称元素。对称矩阵对称矩阵 三对角矩阵三对角矩阵2.4.2 数组的顺序存储结构数组的顺序存储结构第13页,共42页,编辑于2022年,星期六对称矩阵的压缩存储对称矩阵的压缩存储设有一个设有一个 n n 的对称矩阵的对称矩阵 A。在矩阵中,在矩阵中,aij=aji2.4.2 数组的顺序存储结构数组的顺序存储
9、结构第14页,共42页,编辑于2022年,星期六 为节约存储空间,只存对角线及对角线以为节约存储空间,只存对角线及对角线以上的元素,或者只存对角线及对角线以下的上的元素,或者只存对角线及对角线以下的元素。前者称为元素。前者称为上三角矩阵上三角矩阵,后者称为,后者称为下三下三角矩阵角矩阵。把它们按行存放于一个一维数组把它们按行存放于一个一维数组 B 中,称中,称之为对称矩阵之为对称矩阵 A 的压缩存储方式。的压缩存储方式。数组数组 B 共有共有 n+(n-1)+1=n(n+1)/2个元素。个元素。2.4.2 数组的顺序存储结构数组的顺序存储结构第15页,共42页,编辑于2022年,星期六上三角矩
10、阵下三角矩阵第16页,共42页,编辑于2022年,星期六下三角矩阵B a00 a10 a11 a20 a21 a22 a30 a31 a32 an-1n-1 0 1 2 3 4 5 6 7 8 n(n+1)/2-1若若 i j,数组元素数组元素Aij在数组在数组B中的存放位置为中的存放位置为 1+2+i+j=(i+1)i/2+j前前i行元素总数行元素总数 第第i行第行第j个元素前元素个数个元素前元素个数第17页,共42页,编辑于2022年,星期六 若若ij,数组元素,数组元素 Aij 在矩阵的上三角部分在矩阵的上三角部分,在在数组数组 B 中没有存放,可以找它的对称元素:中没有存放,可以找它的
11、对称元素:Aji:=j(j+1)/2+i 若已知某矩阵元素位于数组若已知某矩阵元素位于数组B的第的第k个位置,可寻找满足个位置,可寻找满足i(i+1)/2 k (i+1)(i+2)/2的的 i(行号行号),j=k-i (i+1)/2 (列号列号)例例:当当 k=8,3 4/2=6 k j,数组元素,数组元素Aij在矩阵的下三角部分,在矩阵的下三角部分,在数组在数组 B 中没有存放。因此,找它的对称元素中没有存放。因此,找它的对称元素Aji。Aji在数组在数组 B 的第的第(2 n-j-1)j/2+i 的位的位置中找到。置中找到。2.4.2 数组的顺序存储结构数组的顺序存储结构第20页,共42页
12、,编辑于2022年,星期六三对角矩阵的压缩存储三对角矩阵的压缩存储B a00 a01 a10 a11 a12 a21 a22 a23 an-1n-2 an-1n-1 0 1 2 3 4 5 6 7 8 9 102.4.2 数组的顺序存储结构数组的顺序存储结构第21页,共42页,编辑于2022年,星期六 三对角矩阵中除主对角线及在主对角线上三对角矩阵中除主对角线及在主对角线上 下最临近下最临近的两条对角线上的元素外,所有其它元素均为的两条对角线上的元素外,所有其它元素均为0。总共。总共有有3n-2个非零元素。个非零元素。将三对角矩阵将三对角矩阵A中三条对角线上的元素按行存放在中三条对角线上的元素
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 数组 幻灯片
限制150内