数组实验报告.doc专班学姓业,级号名网络工程100129张剑指导教师笠淑红李珍辉黄哲数据结构实验报告数组报告名称2012年5月21日一、实验目的:熟悉稀疏矩阵的“三元组表”和“十字链表”存储结构,运用它们进行矩阵简单运算处理:如实现矩阵的转置、两个矩阵的相加。二、实验内容与基本要求:编写用“三元组表”存储稀疏矩阵,进行矩阵处理的程序。(1)矩阵转置 (2)矩阵加三、概要设计:数据结构:ADTArray(数据对象:ji=0,1,...,bi-1,1,2,...,n;D={aj1j2...jn|n>0称为数组的维数,bi是数组第i维的长度,ji是数组元素第i维的下标,aj1j2...jneElemSet)数据关系:R=(R1,R2,...,Rn)Ri=(<aj1j2,aj1j2...ji+1...jn>|0^jk^bk-1, 1MkMn且k#i,,aj1j2...ji+1...jneD)抽象数据类型:InitArray(&A,n,bound1,…,boundn)操作结果:若维数n和各维长度合法,则构造相应的数组A,并返|-|OKoDestoryArray(&A)操作结果:销毁数组A。Value(A,&e,index1,・・・,indexn)初始条件:A是n维数组,e为元素变量,随后是n个下标值。操作结果:若各下标越界,则e赋值为所指定的A的元素值,并返INOKoAssign(&A,e,index1,indexn)初始条件:A是n维数组,e为元素变量,随后是n个下标值。操作结果:若各下标不越界,则将e赋值为所指定的A的元素,并返|-|OKo四、详细设计:#include<>#defineN4/*矩阵中非零元素最多个数*//*行号*/typedefintElemType;#defineMaxSize100typedefstruct{intr;intc;ElemTyped;}TupNode;typedefstruct(introws;intcols;intnums;/*列号*//*元素值*//*三元组定义*//*行数值*//*列数值*//*非零元素个数*/TupNodedatafMaxSize];}TSMatrix; /*三元组顺序表定义*/voidCreatMat(TSMatrix&t,ElemTypeA[N][N]){inti,j;=N;=N;=0;for(i=0;i<N;i++)(for(j=O;j<N;j++)if(A[i][j]!=O){].r=i;[=j;[].d=A[i][j];++;}}}voidDispMat(TSMatrixt)(inti;if(<=0)return;printf("\t%d\t%d\t%d\n,',,,);printf(M\t \nn);for(i=O;i<;i++)printf(n\t%d\t%d\t%d\nn,[i].r,[i].c,[i].d);}voidTranMat(TSMatrixt,TSMatrix&tb)(intp,q=0,v; /**/
数组实验报告 来自淘豆网www.taodocs.com转载请标明出处.