文档详情

数据结构实验报告-串及三元数组.doc

发布:2016-11-24约1.65千字共4页下载文档
文本预览下载声明
南昌大学实验报告 学生姓名: 学 号: 专业班级: 实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 2014.4.17 实验成绩: (以下主要内容由学生完成) 实验项目名称 串和矩阵 实验目的 1.掌握串的基本操作实现方法 。 2.掌握三元组存储方法。 三、实验基本原理 1.KMP算法实现 2 求顺序串子串substring算法实现 3. 矩阵转置 四、主要仪器设备及耗材 五、实验步骤 #include stdio.h typedef struct { int data[100][100]; int m,n; }matrix; typedef int spmatrix[100][3]; void compressmatrix(matrix A ,spmatrix B) { int i,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; } void transpmatrix(spmatrix B, spmatrix C) { int i,j,t,m,n; int x[100]; int y[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; } } } int main() { int i,j,m,n; matrix A; spmatrix B,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); } 六、实验数据及处理结果 七、思考讨论题或体会或对改进实验的建议 八、参考资料
显示全部
相似文档