数据结构-dsch4动画版_第1页
数据结构-dsch4动画版_第2页
数据结构-dsch4动画版_第3页
数据结构-dsch4动画版_第4页
数据结构-dsch4动画版_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四 ))

))

))))))

a2n ...

((((

am

((((((数据元素一般不 、删除操ADTArrayji=0,...,bi-1,D={aj1,j2jn|n>0称为数组的维数bi是数组第i维的长度ji是数组元素第i维的下标,aj1,j2,...,jn属于R={R1,R2,...,Ri={<aj1,...ji,...jn,aj1,...ji+1, >0jkbk-11kn且k0jibi-2,i=2,...,n}ADT基本操作:InitArray(&An,bound1,操作结果nValue(A,&e,index1,...,随后是n个下标值。所指定的A的元素值,并返回Assign(&A,e,index1,...,随后是n所指定的A的元素,并返回OK数组的顺 结行列行列

m-m

定义

a

#define

#define

m*n-

数组顺 结构的实#defineMAX_ARRAY_DIMtypedef //数组元 int //int //数组维 int //常 //数组顺 结构的实Array 234282821

A[0][0][0]A[0][0][1]A[0][1][0]A[0][1][1]A[0][2][0]A[0][2][1]A[0][3][0]A[0][3][1]A[1][0][0]A[1][0][1]A[1][1][0]A[1][1][1]A[1][2][0]A[1][2][1]A[2][2][1]A[2][3][0]A[2][3][1]typedefintrow,typedefintrow,////数址Array_21 12414231A.base=(ElemType**)malloc(row*sizeof(ElemType*)13 3数组的基本操作在动态二维数组中的实StatusInitArray(Array_2&A,introw,int if(row<1||column<1)returnERROR;A.row=row; A.column=column;A.base=(ElemType**)malloc(row*sizeof(ElemType*));if(!A.base) exit(OVERFLOW);for(i=0;i<row; if(! exit(OVERFLOW}return}

StatusDestroyArray(Array_2{intfor(i=0;i<A.row; if(!A.base[i] returnfree(A.base[i]}if(!A.base)returnERROR;free(A.base);A.base=NULL;returnOK;}数组的基本操作在动态二维数组中的实StatusValue(Array_2A,ElemType&e,intr,int{if(r<1||returnERROR;if(c<1||r>A.column)returnERROR;e=A.base[r-1][c-return}

StatusLocate(Array_2A,ElemTypee,int&r,int{intfor(i=0;i<A.row;for(j=0;j<A.column;{{r=i+1;returnStatusAssign(Array_2A,{if(r<1||r>A.row)returnERROR;if(c<1||returnERROR;returnOK;}

m}mreturn}

对称矩 a22

n(n- n(n+1)/2-

2

三角矩

0 0

n(n- n(n+1)/2-

对角矩 a12 …………… 0 0 0…an-1,n- an-1,n- an- …an,n-

a32 ann-

n(n-

n(n+1)/2-矩阵的压 矩阵的压 假设m行n列的矩阵含t个非零元 0.05

M 0 M由{(1,2,121,3,93,1,-33,6,14(5,2,18(6,1,15(6,4,-7)}和矩阵维数(6,7)ADTSparseMatrixD={aij|i=1,2,…m;j=1,2,…n;aij 数R={Row,Row={<aij,aij+1>|1im,1jn-1}Col={<aij,ai+1j>|1im-1,1jn}ADT ddSMatrix(M,N,&Q) 操作结果:求稀疏矩阵M的转置矩阵稀疏矩阵的压 结#defineMAXSIZE100typedefstruct{inti,j; ElemTypee; //非零元的值Triple;typedefstructTripledata[MAXSIZE+1]; mu,nu,tu;}TSMatrix;稀疏矩阵的压 结行列下 非零元012301234567678121393136164

00 M 00

三元组表所 稀疏矩阵的压 结行逻 #defineMAXMNtypedefstructTripledata[MAXSIZE rpos[MAXMN // mu,nu, //稀疏矩阵 数与非零元个} //行逻 顺序表类稀疏矩阵的压 结行逻

01201234567

rpos[0]不用

7657653316012345

7823916782391640存矩阵

1 rpos[i]=rpos[i-1]+第i-1行非零元个数求稀疏矩阵的

a1n

a1m

a21

a2n

a2m

...

...

am

amn

an

anm0 2T 00000200100ijeije06780768212213-139316531-3681934146-64-63?57?57367将矩阵行 (M的列)为求稀疏矩阵的转置矩阵——按M的列序

算法演求稀疏矩阵的转置矩阵——按M的列序 012012 4 45 578 78pp -

0234567870234567876813- 0000

M 求稀疏矩阵的转置矩阵——按M的列序 012012 4 45 578 78pp -

0 023 -234 456 567 78k8 0000

M 求稀疏矩阵的转置矩阵——按M的列序 012012 4 45 578 78pp -

0234567870234567876813-16212531934 0000

M 求稀疏矩阵的转置矩阵——按M的列序 012012 4 45 578 78pp -

0 023 -23456 45678 78 -k 0000

M 求稀疏矩阵的转置矩阵——按M的列序 012012 4 45 578 78pp -

0 023 -23456 45678 78 -k 0000

M 求稀疏矩阵的转置矩阵——按M的列序 012012 4 45 578 78pp -

0 023 -23456 45678 78 -

0000

M 求稀疏矩阵的转置矩阵——按M的列序 012012 4 45 578 78pp -

0 023 -23456 45678 78 - 0000

求稀疏矩阵的转置矩阵——按M的列序⚫StatusTransposeSMatrix(TSMatrixM,TSMatrix⚫{intcol,p, T.data[k].i

数互}return}

M.tu与M.muM.nureturn}

T(n)O(M.mu求稀疏矩阵的转置矩阵——快速即按M.data中三元组次序转置,转置结果放入T.data中恰当位置cpot[1]=1; (2col

0011234222135788900 0求稀疏矩阵的转置矩阵——快速

012012345 -78 78 -

0 023 -23456 45678 78 - 求稀疏矩阵的转置矩阵——快速StatusFastTransposeSMatrix(TSMatrixM,TSMatrix{intcol,t,T.mu=M.nu;T.nu=M.mu;T.tu=

数互if

无非零元,返 for(col=1;col<=M.nu;++col)num[col]=0;for(t=1;t<=M.tu;++t)++num[M.data[t].j];cpot[1]=1;for(col=2;col<=M.nu;

num数组清求每列非零元cpot[col]=cpot[col-1]+num[col-for(p=1;p<=M.tu;{col= q=

计算每列第一个非零元下转转 指向本列下指向本列下一个非零元位}return return}

M.tu与M.muM.nuT(n)O(M.mu稀疏矩阵的压 结★引入稀疏矩阵链 的原因 稀疏矩阵,在单纯 和做类似转teefsttLode

itj;当进行矩阵相加等运算时,稀疏矩阵的非零元位置lTy;生变化。使用三元d会引起数组typedefstruct{RLink*r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论