欢迎来到天天文库
浏览记录
ID:38753412
大小:53.50 KB
页数:8页
时间:2019-06-18
《稀疏矩阵和广义表子系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include#include#include#include#defineSMAX100typedefstructSPNode//定义三元组{inti,j,v;};//三元组非零元素的行、列和值typedefstructsparmatrix//定义稀疏矩阵{introws,cols,terms;//稀疏矩阵行、列和非零元素的个数SPNodedata[SMAX];//三元组表};typedefstructlinknode//定义广义表{inttag;//
2、区分原子项或子表的标志位linknode*link;uniondata_sublist//存放下一个元素的地址{chardata;//存放原子的值linknode*sublist;//存放子表的指针}node;};sparmatrixCreateSparmatrix()//创建稀疏矩阵{sparmatrixA;printf("tt请输入稀疏矩阵的行、列和非零元素的个数(用逗号隔开):");scanf("%d,%d,%d",&A.rows,&A.cols,&A.terms);for(intn=0;n<=A.terms-1;n++
3、){printf("tt输入非零元素的值(格式:行号,列号,值):");scanf("%d,%d,%d",&A.data[n].i,&A.data[n].j,&A.data[n].v);}returnA;}sparmatrixTrans(sparmatrixA){sparmatrixB;B.rows=A.cols;B.cols=A.rows;B.terms=A.terms;for(intn=0;n<=A.terms-1;n++){B.data[n].i=A.data[n].j;B.data[n].j=A.data[n].i;B
4、.data[n].v=A.data[n].v;}returnB;}voidShowSparmatrix(sparmatrixA){intk;printf("tt");for(intx=0;x<=A.rows-1;x++){for(inty=0;y<=A.cols-1;y++){k=0;for(intn=0;n<=A.terms-1;n++){if((A.data[n].i)==x&&(A.data[n].j==y)){printf("%8d",A.data[n].v);k=1;}}if(k==0)printf("%8d",k)
5、;}printf("tt");}}voidSearchSparmatrix(sparmatrixA,ints)//查找稀疏矩阵中非零元素{intn,t;t=A.terms;for(n=0;n6、dsparmatrix(){intch=1,choice,s;structsparmatrixA,B;A.terms=0;B.terms=0;while(ch){printf("");printf("tt稀疏矩阵的三元组存储");printf("tt******************************");printf("tt*1----新建*");printf("tt*2----转置*");printf("tt*3----查找*");printf("tt*4----显示7、*");printf("tt*0----返回*");printf("tt******************************");printf("tt请输入菜单号:(0-4):");scanf("%d",&choice);switch(choice){case1:A=CreateSparmatrix();break;case2:if(A.terms==0)printf("tt三元组为空!");else{B=Trans(A);printf("tt转置后的稀疏矩阵:");Show8、Sparmatrix(B);}break;case3:{if(A.terms==0)printf("tt三元组为空!");else{printf("tt输入要查找的非零元素:");scanf("%
6、dsparmatrix(){intch=1,choice,s;structsparmatrixA,B;A.terms=0;B.terms=0;while(ch){printf("");printf("tt稀疏矩阵的三元组存储");printf("tt******************************");printf("tt*1----新建*");printf("tt*2----转置*");printf("tt*3----查找*");printf("tt*4----显示
7、*");printf("tt*0----返回*");printf("tt******************************");printf("tt请输入菜单号:(0-4):");scanf("%d",&choice);switch(choice){case1:A=CreateSparmatrix();break;case2:if(A.terms==0)printf("tt三元组为空!");else{B=Trans(A);printf("tt转置后的稀疏矩阵:");Show
8、Sparmatrix(B);}break;case3:{if(A.terms==0)printf("tt三元组为空!");else{printf("tt输入要查找的非零元素:");scanf("%
此文档下载收益归作者所有