中易网

求一个稀疏矩阵连接存储程序

答案:2  悬赏:80  
解决时间 2021-02-26 03:23
程序要求:1.初始化稀疏矩阵m,使它成为不含其他任何元素的空矩阵; 2.求出稀疏矩阵m的转置矩阵并返回; 3.求出M1和M2稀疏矩阵之和并返回;4.求出M1和M2之积病返回;5按一定格式向稀疏矩阵M输入所对应的三元组线性表;6.按照一定格式输出稀疏矩阵M。 麻烦大大们尽量把注释写明白点,才学C++,很多地方都不懂。谢谢了
可以发我邮箱463224714qq.com,或者[email protected]或者直接发到这上面。
最佳答案
#ifndef Matrix_H
#define Matrix_H
#include "List.h"
class MatNode
{
public:
int data;
int row, col;
union { NodeMatNode *down; ListMatNode *downrow; };
MatNode(int value = 0, NodeMatNode *p = NULL, int i = 0, int j = 0)
: data(value), down(p), row(i), col(j) {}
friend ostream operator (ostream strm, MatNode mtn)
{
strm '(' mtn.row ',' mtn.col ')' mtn.data;
return strm;
}
};
class Matrix : ListMatNode
{
public:
Matrix() : row(0), col(0), num(0) {}
Matrix(int row, int col, int num) : row(row), col(col), num(num) {}
~Matrix() { MakeEmpty(); }
void MakeEmpty()
{
ListMatNode *q;
while (first-data.downrow != NULL)
{
q = first-data.downrow;
first-data.downrow = q-first-data.downrow;
delete q;
}
ListMatNode::MakeEmpty();
row = col = num = 0;
}
void Input()
{
if (!row) { cout "输入矩阵行数:"; cin row; }
if (!col) { cout "输入矩阵列数:"; cin col; }
if (!num) { cout "输入非零个数:"; cin num; }
if (!row || !col || !num) return;
cout endl "请按顺序输入各个非零元素,以列序为主,输入0表示本列结束" endl;
int i, j, k, v;//i行数 j列数 k个非零元 v非零值
NodeMatNode *p = first, *t;
ListMatNode *q;
for (j = 1; j = col; j++) LastInsert(MatNode(0, NULL, 0, j));
for (i = 1; i = row; i++)
{
q = new ListMatNode;
q-first-data.row = i;
p-data.downrow = q;
全部回答
//创建稀疏矩阵m status createsmatrix(tsmatrix * m) { int i,m,n; elemtype e; status k; printf("请输入矩阵的行数,列数,非零元素数:"); scanf("%d,%d,%d",&(* m).mu,&(* m).nu,&(* m).tu); if ((* m).tu > max_size) { return error; } (* m).data[0].i = 0; for (i=1;i<=(* m).tu; ++i) { do { printf("请按行序顺序输入第%d个非零元素所在的行(1-%d),列(1-%d),元素值:",i,(* m).mu,(* m).nu); scanf("%d,%d,%d",&m,&n,&e); k = 0; if (m<1 || m>(* m).mu || n<1 || n>(* m).nu)//行或列超出范围 { k = 1; } if (m<(* m).data[i-1].i || m==(* m).data[i-1].i && n<=(* m).data[i-1].j)//行或列的顺序有错 { k = 1; } }while (k); (* m).data[i].i = m; (* m).data[i].j = n; (* m).data[i].e = e; } return ok; }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
人说一醉能解千愁…一醉真的能解千愁吗?
温派服饰仙葫直销店这个地址在什么地方,我要
为什么这一段时间看书、看电脑时间一长眼睛就
我是在校大学生,想报考人力资源,我能报考几
身高180,体重140,穿多大号合适
艾妮儿电动自行车公司怎么去啊,有知道地址的
死神十刃登场时的背景音乐
由于工伤造成的死亡!求助保险高手!
用java创建一个类--矩阵,要求覆盖Object方法
天龙渔具在哪里啊,我有事要去这个地方
怎样才能采到好的茶叶
尿蛋白2 胆固醇又高的人早餐吃什么比较好?
标志308a保多少钱
石家庄做整形医院,感谢啊
中国移动鹏程通讯特约代理点这个地址在什么地
推荐资讯
福海水饺王地址在什么地方,想过去办事
平安银行珠海银桦支行怎么去啊,有知道地址的
鞋子破了轻微的一点皮,还擦了很厚的一块皮能
我和老婆打架拉她离家出走找不到人怎么办?
瑞达电脑科技地址在哪,我要去那里办事
张秀兰是哪里人
钻石口腔这个地址在什么地方,我要处理点事
朱刘街道朱刘西村第二卫生室在什么地方啊,我
海通电脑在哪里啊,我有事要去这个地方
我电脑想装2个3T硬盘可以么,会对电脑速度有
痛风可以打点滴吗
春天的金川公园350字
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?