欢迎来到天天文库
浏览记录
ID:5998140
大小:104.29 KB
页数:5页
时间:2017-12-30
《三元组顺序表操作》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、new02014年7月18日23:48#include#include#defineMAXSIZE100#defineM15typedefintElemType;typedefstruct{introw;//行intcol;//列ElemTypevalue;//数值}Triple;typedefstruct{Tripledata[MAXSIZE];introws;//总行数intcols;//总列数intnums;//非零元素的总个数}TSMatrix;TSMatrix*CreatSparse(TSMa
2、trix*SparseMatrix){intcols,rows;inti=0;intcol,row,value;SparseMatrix->nums=0;//确定稀疏矩阵的大小printf("请输入总行数,最大为15");scanf("%d",&rows);printf("请输入总列数,最大为15");scanf("%d",&cols);SparseMatrix->rows=rows;SparseMatrix->cols=cols;//输入稀疏矩阵中不为零的信息printf("输入稀疏矩阵的信息,如果输入-1,则退出");pri
3、ntf("rowt");printf("colt");printf("value");while(1){ROWGO://有点小心虚scanf("%d",&row);if(row==-1)break;if(row>=rows){printf("行标越界");gotoROWGO;}SparseMatrix->data[i].row=row;COLGO:scanf("%d",&col);if(col>=cols)-1-new02014年7月18日23:48{printf("列标越界");gotoCOLGO;}SparseMatri
4、x->data[i].col=col;scanf("%d",&value);SparseMatrix->data[i].value=value;i++;}SparseMatrix->nums=i;printf("%d",i);returnSparseMatrix;}TSMatrix*SparseInit(intmatrix[M][M],inty,intx){inti,j,k=0;TSMatrix*SparseMatrix;SparseMatrix=(TSMatrix*)malloc(sizeof(TSMatrix));for(i=0;i
5、data[k].value=matrix[i][j];SparseMatrix->data[k].row=i;SparseMatrix->data[k].col=j;k++;}}}SparseMatrix->rows=y;SparseMatrix->cols=x;SparseMatrix->nums=k;returnSparseMatrix;}voidSparsePrint(TSMatrixSparseMatrix){int
6、i;intsum=SparseMatrix.nums;printf("---------------------------------");printf("RowColValue");for(i=0;i7、0(TSMatrix*SparseMatrix,TSMatrix*TranspMatrix)-2-new02014年7月18日23:48{inti,j=0,k;TranspMatrix->rows=SparseMatrix->cols;//总列数赋值为总行数TranspMatrix->cols=SparseMatrix->rows;//总行数赋值为总列数TranspMatrix->nums=SparseMatrix->nums;//非零总数赋值if(TranspMatrix->nums<1){printf("空空的");return;}//8、-------------先列序后行序----------------for(i=0;icols;i++)//循环每一列,找出最小的列{for(k=
7、0(TSMatrix*SparseMatrix,TSMatrix*TranspMatrix)-2-new02014年7月18日23:48{inti,j=0,k;TranspMatrix->rows=SparseMatrix->cols;//总列数赋值为总行数TranspMatrix->cols=SparseMatrix->rows;//总行数赋值为总列数TranspMatrix->nums=SparseMatrix->nums;//非零总数赋值if(TranspMatrix->nums<1){printf("空空的");return;}//
8、-------------先列序后行序----------------for(i=0;icols;i++)//循环每一列,找出最小的列{for(k=
此文档下载收益归作者所有