版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章数组4.1数组的定义4.2数组的顺序表示和实现4.3矩阵的压缩存储4.1数组的定义一维数组可以看成是一个线性表;二维数组可看作一种特殊的线性表,即线性表中数据元素本身也是一个线性表。一、数组的定义和特点1.定义数组是有序数据的集合2.数组特点数组结构固定数据元素同构()()()()()()()()()次序约定:以行序为主序
a11a12……..a1n
a21a22……..a2n
am1am2……..amn
….Loc(aij)=Loc(a11)+[(i-1)*n+(j-1)]*lK=(i-1)*n+(j-1)
按行序为主序存放:Basic,Pascal,C语言
amn
……..
am2
am1……….
a2n
……..
a22
a21a1n
…….a12
a1101n-1m*n-1n4.2数组的顺序表示和实现次序约定:以列序为主序
按列序为主序:(Fortran语言)01m-1m*n-1m
amn
……..
a2n
a1n……….
am2
……..
a22
a12am1
…….a21
a11
a11
a12
……..
a1n
a21
a22
……..
a2n
am1
am2
……..
amn
….Loc(aij)=Loc(a11)+[(j-1)*m+(i-1)]*lK=(j-1)*m+(i-1)4.2数组的顺序表示和实现1.对称矩阵
a11a12
….
……..a1n
a21
a22
……..…….a2n
an1
an2
……..ann
….a11
a21
a22
a31
a32
an1ann
…...…...k=01234按行序为主序:4.3矩阵的压缩存储
a11
00
……..0
a21a22
0
……..0
an1an2an3……..ann
….0Loc(aij)=Loc(a11)+[+(j-1)]*Lk=i*(i-1)/2+(j-1)(i>=j)i(i-1)22.三角矩阵4.3矩阵的压缩存储a11
a21
a22
a31
a32
an1ann
…...…...k=01234按行序为主序:3.对角矩阵
a11
a120
…………….0
a21
a22
a23
0
……………00
0
…an-1,n-2an-1,n-1
an-1,n0
0
……an,n-1ann.
0
a32a33
a34
0
………0……………Loc(aij)=Loc(a11)+(3*(i-2)+2+(j-i+1))*L(I-1<=j<=I+1)a11a12a21a22a23ann-1ann
…...…...k=01234按行序为主序:k=3*(i-2)+2+(j-i+1)(I-1<=j<=I+1)M由{(1,2,12),(1,3,9),(3,1,-3),(3,6,14),(4,3,24),(5,2,18),(6,1,15),(6,4,-7)}和矩阵维数(6,7)唯一确定4.稀疏矩阵定义:非零元较零元少,且分布没有一定规律的矩阵压缩存储原则:只存矩阵的行列维数和每个非零元素的行列下标及其值稀疏矩阵的压缩存储方法三元组顺序表6
7
8
121213931-3361443245218611564-7dataijv012345678data[0].i,data[0].j,data[0].v分别存放矩阵行列维数和非零元素个数行列下标非零元素值
#defineMAXSIZE12500
typedefstruct{
inti,j;//该非零元的行下标和列下标
ElemTypee;//该非零元的值
}Triple;//三元组类型typedefunion{
Tripledata[MAXSIZE+1];
intmu,nu,tu;}TSMatrix;//稀疏矩阵类型如何求转置矩阵?用常规的二维数组表示时的算法for(col=1;col<=nu;++col)
for(row=1;row<=mu;++row)T[col][row]=M[row][col];用“三元组”表示时如何实现?121415-522-731363428211451-522-713364328首先应该确定每一行的第一个非零元在三元组中的位置。
cpot[1]=1;
for(col=2;col<=;++col)cpot[col]=cpot[col-1]+num[col-1];StatusFastTransposeSMatrix(TSMatrixM,TSMatrix&T){=;=;=;
if()
{
for(col=1;col<=;++col)num[col]=0;
for(t=1;t<=;++t)++num[M.data[t].j];
cpot[1]=1;
for(col=2;col<=;++col)cpot[col]=cpot[col-1]+num[col-1];for(p=1;p<=;++p){}
}//if
returnOK;}//FastTransposeSMatrix
转置矩阵元素Col=M.data[p].j;q=cpot[col];T.data[q].i=M.data[p].j;T.data[q].j=M.data[p].i;T.data[q].e=M.data[p].e;++cpot[col]三元组顺序表又称有序的双下标法,它的特点是,非零元在表中按行序有序存储,因此便于进行依行顺序处理的矩阵运算。然而,若需随机存取某一行中的非零元,则需从头开始进行查找。行逻辑联接的顺序表#defineMAXMN500typedefstruct{Tripledata[MAXSIZ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年天津市河西区卫生健康系统公开招聘事业单位工作人员备考题库及参考答案详解一套
- 2026年中色国际矿业股份有限公司招聘备考题库及1套完整答案详解
- 2026年年厦门市翔安区实验学校公开招聘非在编合同教师补充备考题库及答案详解一套
- 2026年北京石油学院附属实验小学招聘备考题库及完整答案详解一套
- 2026年嘉兴市海宁中学代课教师招聘备考题库附答案详解
- 2026年国家电投集团数字科技有限公司招聘备考题库完整答案详解
- 2026年三亚海洋旅游发展有限公司招聘备考题库完整答案详解
- 2026年南宁市国土资源档案馆公开招聘编制外工作人员备考题库及参考答案详解1套
- 2026年多岗招人蜀道集团直属子公司招聘→备考题库及参考答案详解
- 2026年宁波市轨道交通物产置业有限公司下属项目公司社会招聘备考题库及参考答案详解
- 中医骨科适宜技术
- 空间计算发展报告(2024年)-元宇宙标准化工作组
- 2025《混凝土搅拌站劳动合同》
- 售楼部装饰设计合同协议
- 煤矿皮带输送机跑偏原因和处理方法
- 创伤后应激障碍的心理护理
- 血管紧张素转换酶抑制剂在心血管疾病防治中应用的专家共识解读
- 医疗项目年度总结模板
- 2025中级消防设施操作员作业考试题及答案(1000题)
- 人教版小学科学六年级上册全册教案
- 2024-2025学年上学期上海六年级英语期末复习卷3
评论
0/150
提交评论