您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 数据结构实验报告-串及三元数组
南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合□设计□创新实验日期:2014.4.17实验成绩:(以下主要内容由学生完成)一、实验项目名称串和矩阵二、实验目的1.掌握串的基本操作实现方法。2.掌握三元组存储方法。三、实验基本原理1.KMP算法实现2求顺序串子串substring算法实现3.矩阵转置四、主要仪器设备及耗材五、实验步骤#includestdio.htypedefstruct{intdata[100][100];intm,n;}matrix;typedefintspmatrix[100][3];voidcompressmatrix(matrixA,spmatrixB){inti,j,k=1;for(i=0;iA.m;i++)for(j=0;jA.n;j++)if(A.data[i][j]!=0){B[k][0]=i;B[k][1]=j;B[k][2]=A.data[i][j];k++;}B[0][0]=A.m;B[0][1]=A.n;B[0][2]=k-1;}voidtranspmatrix(spmatrixB,spmatrixC){inti,j,t,m,n;intx[100];inty[100];m=B[0][0];n=B[0][1];t=B[0][2];C[0][0]=n;C[0][1]=m;C[0][2]=t;if(t0){for(i=0;in;i++)x[i]=0;for(i=1;i=t;i++)x[B[i][1]]=x[B[i][1]]+1;y[0]=1;for(i=1;in;i++)y[i]=y[i-1]+x[i-1];for(i=1;i=t;i++){j=y[B[i][1]];C[j][0]=B[i][1];C[j][1]=B[i][0];C[j][2]=B[i][2];y[B[i][1]]=j+1;}}}intmain(){inti,j,m,n;matrixA;spmatrixB,C;printf(输入行数m:\n);scanf(%d,&m);printf(输入列数n:\n);scanf(%d,&n);A.m=m;A.n=n;printf(按照行列输入矩阵值:\n);for(i=0;im;i++)for(j=0;jn;j++)scanf(%d,&A.data[i][j]);compressmatrix(A,B);printf(三元组为:);for(i=0;i=B[0][2];i++){printf(\n);for(j=0;j3;j++)printf(%d,B[i][j]);}printf(\n转置后的三元组为:);transpmatrix(B,C);for(i=0;i=C[0][2];i++){printf(\n);for(j=0;j3;j++)printf(%d,C[i][j]);}printf(\n);}六、实验数据及处理结果七、思考讨论题或体会或对改进实验的建议八、参考资料
本文标题:数据结构实验报告-串及三元数组
链接地址:https://www.777doc.com/doc-2334539 .html