稀疏矩阵如何生成相应的三元组顺序表?

2024-11-25 00:26:18
推荐回答(3个)
回答1:

typedef struct
{
int i,j;
ElemType e;
}Triple;
typedef struct
{
Triple data[MAXSIZE+1];
int mu,nu,tu;
}TSMatrix;

int InitSMatrix(TSMatrix &M)
{
printf("请输入矩阵的行数:");
scanf("%d",&M.mu);
printf("列数:");
scanf("%d",&M.nu);
printf("非零元的个数:");
scanf("%d",&M.tu);
for(int t=1;t<=M.tu;t++) //data[0]不用败裤
{
printf("第%d个非零元的并枯数行号绝首:",t);
scanf("%d",&M.data[t].i);
printf("第%d个非零元的列号:",t);
scanf("%d",&M.data[t].j);
printf("第%d个非零元的元素值:",t);
scanf("%d",&M.data[t].e);
}
return OK;
}

回答2:

首先自己输入一个矩阵(这是比较麻烦改早的方法)或利用伪随机数产生一个稀疏矩阵(这是我用的方法纳好)
然核茄雀后利用循环对该矩阵进行扫描,将非零元素的行列值以及非零元素的值存入线性表。

回答3:

稀疏矩阵转制问题
生成一个三元组:
包链巧括三个类别的书(横坐标、纵坐标、然后是值)
首先声明一个结构体,包括三组数据,如上三类。
struct
{int x;//横坐标
盯滚 int y;//纵坐标凯唤余
int dt;//数据
}
然后是遍历稀疏矩阵
可以采用如下方法
int d,b;//声明两个变量d和b
for(d=0;d for(b=0;b{
a[d][b]!=null;
x=d;
y=b;
dt=a[d][b];
}
大概就是这样了,你着急本书看看吧