铜仁市论坛

首页 » 分类 » 分类 » 数据结构实验三元组顺序表表示的稀疏矩阵转
TUhjnbcbe - 2021/2/13 11:46:00
白癜风能治好么 http://m.39.net/pf/a_7157873.html

题目:

三元组顺序表表示的稀疏矩阵转置。

输入格式:

输入第1行为矩阵行数m、列数n及非零元素个数t。按行优先顺序依次输入t行,每行3个数,分别表示非零元素的行标、列标和值。

输出格式:

输出转置后的三元组顺序表结果,每行输出非零元素的行标、列标和值,行标、列标和值之间用空格分隔,共t行。

输入样例:

-

输出样例:

-

思路分析:

这一题较为简单,我才用了使用空间复杂度换时间的方法,通过开出一个指针数组,完成了行优先向列优先的转化。

代码展示:

#includeiostream#includemalloc.husingnamespacestd;#defineMAXSIZE15typedefstructvectr{inti;intj;intdata;}vectr;intmain(){vectr*p[MAXSIZE][MAXSIZE]={NULL};vectr*tem=(vectr*)malloc(sizeof(vectr));introw,col,num;cinrowcolnum;intcont;while(num--){cont=0;cintem-item-jtem-data;for(inti=0;iMAXSIZE;i++)if(p[tem-j]!=NULL)cont++;//通过cont判断存放位置减少之后的判断次数p[tem-j][cont]=tem;tem=(vectr*)malloc(sizeof(vectr));}//存入完毕for(inti=0;iMAXSIZE;i++)for(intj=0;jMAXSIZE;j++){if(p[j]==NULL)break;//空则后面皆是空,跳出elsecoutp[j]-j"p[j]-i"p[j]-dataendl;}//输出完毕return0;}预览时标签不可点收录于话题#个上一篇下一篇

1