计算机基础综合PPT课件之数据结构-数组与广义表.ppt
《计算机基础综合PPT课件之数据结构-数组与广义表.ppt》由会员分享,可在线阅读,更多相关《计算机基础综合PPT课件之数据结构-数组与广义表.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构第五章 数组与广义表 本章要点本章要点深入掌握数组的相关概念深入掌握数组的相关概念,数组元素顺序存数组元素顺序存储位置的计算方法储位置的计算方法掌握对特殊矩阵进行压缩时的下标变换公掌握对特殊矩阵进行压缩时的下标变换公式式.了解稀疏矩阵的压缩存储方法了解稀疏矩阵的压缩存储方法掌握广义表的结构特点及其存储表示方法掌握广义表的结构特点及其存储表示方法数组的定义数组的定义数组的定义方式数组的定义方式1一个一个n维数组类型可以定义为其数组元素为维数组类型可以定义为其数组元素为n-1维数组的一维数组类型维数组的一维数组类型.当当n=1时时,n维数组就退化为定长的线性表,每维数组就退化为定长的线性表
2、,每个元素不可再分解。个元素不可再分解。数组的定义(数组的定义(2)数组定义方式数组定义方式2(抽象数据类型数组)(抽象数据类型数组)ADT Array 数据对象:数据对象:ji=0,1,bi-1,i=1,2,3,n.D=aj1j2jn|n(0)称为数组维数,称为数组维数,bi是数组第是数组第i维的长度,维的长度,ji是数组元素的第是数组元素的第i维下标,维下标,aj1j1jn ElemSet 数据关系:数据关系:R=R1,R2,,Rn Ri=|0 jk bk-1,1 k n,k i,0 jji i b bi i-2,-2,aj1jijn,aj1ji+1jn D,i=2,n数组的定义(数组的定
3、义(3)基本操作基本操作:InitArray(&A,n,bound1,boundn)/构造数构造数组组A,维数维数n,各维长度各维长度bound1,boundn DestroyArray(&A)/销毁数组销毁数组A Value(A,&e,index1,indexn)/将指定的将指定的A元素赋给元素赋给e Assign(&A,e,index1,indexn)/将将e的值赋给所指定的的值赋给所指定的A的元素的元素 ADT Array数组的顺序存储数组的顺序存储二维数组二维数组Am n元素元素aij,0 i m-1,0 j n-1存储结构存储结构以行序为主序以行序为主序 Loc(i,j)=Loc(0
4、,0)+(n*i+j)L L以列序为主序以列序为主序 Loc(i,j)=Loc(0,0)+(m*j+i)L Ln n维数组的数据元素存储地址维数组的数据元素存储地址(以第一维优先存储以第一维优先存储)Loc(j Loc(j1 1,j,j2 2,j jn n)=Loc(0,0,)=Loc(0,0,)+(b)+(b2 2 b bn n j j1 1+b b3 3 b bn n j j2 2+b+bn n j jn-1n-1+j+jn n)L L 矩阵矩阵的存储矩阵的存储特殊矩阵特殊矩阵矩阵中的元素排列是有规律的矩阵中的元素排列是有规律的矩阵的非零元素很少矩阵的非零元素很少压缩存储压缩存储为多个值相
5、同的元素只分配一个存储空间为多个值相同的元素只分配一个存储空间对零元素不分配空间对零元素不分配空间对称矩阵示例对称矩阵示例对称矩阵对称矩阵性质性质:在在n阶矩阵阶矩阵A中中,aij=aji,1 i,j n压缩存储压缩存储:只存主对角线只存主对角线以上或以下以上或以下元素元素(包括主对角线包括主对角线)。可用一维数组存储。可用一维数组存储。减少存储空间减少存储空间:n2-n(n+1)/2下三角元素下三角元素aij,(i j)与一维数组与一维数组Sak(1 k n)元素的对应元素的对应关系关系 k=i(i-1)/2+j-1上三角元素上三角元素aij,(i j)与一维数组与一维数组Sak元素的对应关
6、系元素的对应关系 k=j(j-1)/2+i-1Sa下标下标 k=0 1 2 3 4 n(n+1)/2-2 n(n+1)/2-1 a00a10a11a20a21an-1,n-3an-1,n-2an-1,n-1对角矩阵对角矩阵性质性质:一个一个n阶方阵的所阶方阵的所有非零元素都集中在以有非零元素都集中在以主对角为中心的带状区主对角为中心的带状区域中域中压缩存储压缩存储:将非零元素存将非零元素存储到一维数组中储到一维数组中稀疏矩阵稀疏矩阵性质性质:矩阵中大多数元素值为矩阵中大多数元素值为0,元素分布没有一定元素分布没有一定规律规律.设在设在m n矩阵中矩阵中,有有t个元素不为零个元素不为零,稀疏因子
7、为稀疏因子为:=t/(m n)n)0.05时时,称为稀疏矩阵称为稀疏矩阵压缩存储方式压缩存储方式:三元组顺序存储三元组顺序存储链表存储链表存储稀疏矩阵示例稀疏矩阵示例三元组顺序表三元组顺序表形式描述形式描述:(i,j,aij)存储表示存储表示#define MAXSIZE 12500 typedef struct int i,j;ElemType e;Triple;三元组顺序表三元组顺序表(2)typedef struct Triple dataMAXSIZE+1;int mu,nu,tu;/矩阵的行数矩阵的行数,列数和非零元个数列数和非零元个数 TSMatrix;存储特点存储特点:非零元在表
8、中按行序有序存储非零元在表中按行序有序存储;最后一行一个元素在最后一行一个元素在data中的序号为中的序号为tu.示例 i j e 1 1 3 1 5 7 2 3 -1 3 1 -1 3 2 -2 5 4 2 A.Data A.mu=5 A.nu=5 A.tu=6A=稀疏矩阵的转置算法稀疏矩阵的转置算法方法方法1:按列序递增转置法:按列序递增转置法 算法的基本思想是:按照被转置矩阵算法的基本思想是:按照被转置矩阵M的的“列序列序”(即转置后(即转置后T的行序)递增的顺序的行序)递增的顺序进行转置,并依次送入转置后矩阵的三元组进行转置,并依次送入转置后矩阵的三元组表中,则转置后矩阵的三元组表恰好
9、是以表中,则转置后矩阵的三元组表恰好是以“行序为主序行序为主序”Status TransposeSMaxtrix(TSMatrix M,TSMaxtrix&T)/求求M的转置矩阵的转置矩阵TT.mu=M.nu;T.nu=M.mu;T.tu=M.Tu;if(T.tu)q=1;/q为为T.data数组下标数组下标,从从1开始开始 for(col=1;col=M.nu;+col)/按按M.data的列读取的列读取 for(p=1;p=M.tu;+p)/对所有非零元素对所有非零元素 if(M.datap.j=col)T.dataq.i=M.datap.j;T.dataq.j=M.datap.i;T.d
10、ataq.e=M.datap.e;+q;return OK;算法的复杂度为算法的复杂度为O(M.nuM.mu)方法方法2 2:快速转置算法:快速转置算法 需要设需要设num和和cpot两个数组。两个数组。numcol表示矩阵表示矩阵M中第中第col列的非零元素个列的非零元素个数;数;数组数组cpotcol表示矩阵表示矩阵M第第col列中第一个非列中第一个非零元素在零元素在T.data中恰当的存储位置。中恰当的存储位置。存在下列公式:存在下列公式:void FastTransposeSMatrix (TSMatrix M,TSMaxtrix&T)/求求M的转置矩阵的转置矩阵TT.mu=M.nu;
11、T.nu=M.mu;T.tu=M.tu;if(T.tu)for(col=1;colM.nu;+col)numcol=0;for(t=1;tM.tu;t+)numM.datat.j+;/统计统计M中每一列含非零元个数中每一列含非零元个数 cpot1=1;/求第求第col列中第一个非列中第一个非零元在零元在T.data中的序号中的序号 for(col=2;colM.nu;+col)cpotcol=cpotcol-1 +numcol-1;for(p=1;p M.tu;+p)col=M.datap.j;/取取M.data的列号存放到的列号存放到col中中 q=cpotcol;/q为为T中当前存储位置中
12、当前存储位置 T.dataq.i=M.datap.j;T.dataq.j=M.datap.i;T.dataq.e=M.datap.e;cpotcol=cpotcol+1;/计算第计算第col列中下一个非零元素列中下一个非零元素存储位置存储位置 /for /if时间复杂度为时间复杂度为O(M.nu+M.tu)行逻辑链接的顺序表行逻辑链接的顺序表目的目的:便于随机存储任意一行的非零元素便于随机存储任意一行的非零元素存储表示存储表示增加一个增加一个“行行”信息的辅助数组信息的辅助数组rpos typedef struct Triple dataMAXSIZE+1;/三元组表三元组表 int rpos
13、MAXRC+1;/各行第一个非零元素的位置数组各行第一个非零元素的位置数组 int mu,nu,tu;/矩阵的行数矩阵的行数,列数和非零元个数列数和非零元个数 RLSMatrix;问题问题:rposrow rposrow+1-1 分别代表什么分别代表什么?两个稀疏矩阵相乘求:求:Q=AB初始化初始化Q /Q.mu=A.mu;Q.nu=B.nu;Q.tu=0;If(A.tu*B.tu!=0)/逐行求积和逐行求积和 for(arow=1;arow=A.mu;+arow)ctemp1B.nu=0;计算计算Q中第中第arow行的积和并存入行的积和并存入ctemp 中中 将将ctemp 中非零元素压缩到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 基础 综合 PPT 课件 数据结构 数组 广义
限制150内