1、目录一、课程设计题目 二、题目与流程图或模块图 三、程序清单和运行结果 四、小结(收获和体会)一、课程设计目的:课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。二、题目与流程图或模块图1、题目:稀疏矩阵的转置要求:1)以三元组的方式存储稀疏矩阵 2)普通转置方法实现 3)快速转置方法实现2、流程图:定义全局变量数组的行数row和列数col用数组创建三元组输入矩阵的行、列、长度、值快速转置普通转置输出转置后的矩阵三、程序清单和运行结果:1、程序清单:# define maxsize
2、1000typedef int elemtype;typedef struct int row,col; elemtype e;triple;typedef struct triple datamaxsize+1; int m,n,len;tsmatrix;int init(triple *s) s-row=s-col=0;int create(tsmatrix *b) int i; printf(please input m,n,lenn); scanf(%d%d%d,&b-m,&b-n,&b-len); for(i=1;ilen;i+) printf(please input e,row,
3、coln); scanf(%d%d%d,&b-datai.e,&b-datai.row,&b-datai.col); void transposetsmatrix(tsmatrix a,tsmatrix *b) int i,j,k; b-m=a.n; b-n=a.m; b-len=a.len; if(b-lenlenmaxsize) printf(the matrix is error); else j=1; for(k=1;k=a.n;k+) for(i=1;idataj.row=a.datai.col; b-dataj.col=a.datai.row; b-dataj.e=a.datai.
4、e; j+; void fasttransposetsmatrix(tsmatrix a,tsmatrix *b)int col,t,p,q;int nummaxsize,positionmaxsize;b-len=a.len;b-n=a.m;b-m=a.n; if(b-lenlenmaxsize) printf(the matrix is error); else for(col=1;col=a.n;col+) numcol=0; for(t=1;t=a.len;t+)numa.datat.col+;position1=1; for(col=2;cola.n;col+)positioncol
5、=positioncol-1+numcol-1; for(p=1;pdataq.row=a.datap.col; b-dataq.col=a.datap.row; b-dataq.e=a.datap.e; positioncol+; void display(tsmatrix *b) int i,j,k; for(i=1;im;i+) for(j=1;jn;j+) for(k=1;klen;k+)if(b-datak.row=i&b-datak.col=j) printf(%5d,b-datak.e) ;break; if(kb-len) printf(%5d,0); if(j=b-n) pr
6、intf(n); main() triple s; tsmatrix a,b,c; init(&s); create(&a); display(&a); printf(n); printf(pu tong zhuan zhi jie guon); transposetsmatrix(a,&b); display(&b); printf(n); printf(kuai su zhuan zhi jie guon); fasttransposetsmatrix(a,&b); display(&b); 2、运行结果: 输入矩阵的行、列、长度输入非零元素的行、列、值输出矩阵以及转置后的矩阵四、小结(收
7、获和体会):通过一周的课程设计使我对数据结构有了更深的理解,对以前学习中不明白的,不理解的都有了进一步的理解。在实际操作中遇到了很多困难,比如,在做矩阵的转置时,一开始不了解矩阵转置到底是什么,普通转置的原理,快速转置的原理。但通过查书,请教同学和老师,使我的动手能力和沟通能力都有了提高。在整个课程设计中总是在编写程序中发生错误,有时会很没耐性,但都被我逐个克服了,编程一定要有耐心,同时还有认真仔细,尽量保证不出现错误。编程要有条理,不仅使自己要看懂 ,别人也能看懂,这样有利于程序的改正。在做完这个课程设计时,对自己动手完成的设计有一种成就感,增强了自己的自信心,对数据结构这门课有了新的认识。