admin 管理员组文章数量: 1087139
2024年4月21日发(作者:c语言编写小游戏贪吃蛇)
typedef int ElemType;
// 稀疏矩阵的三元组顺序表存储表示
define MAXSIZE 100 // 非零元个数的最大值
typedef struct
{
int i;j; // 行下标;列下标
ElemType e; // 非零元素值
}Triple;
typedef struct
{
Triple dataMAXSIZE+1; // 非零元三元组表;data0未用
int mu;nu;tu; // 矩阵的行数、列数和非零元个数
}TSMatrix;
// 创建稀疏矩阵M
int CreateSMatrixTSMatrix M
{
int i;m;n;
ElemType e;
int k;
printf"请输入矩阵的行数;列数;非零元素个数:逗号n";
scanf"%d;%d;%d";&;&;&;
0.i=0; // 为以下比较顺序做准备
fori = 1; i <= ; i++
{
do
{
printf"请按行序顺序输入第%d个非零元素所在的行1~%d;"
"列1~%d;元素值:逗号n"; i;;;
scanf"%d;%d;%d";&m;&n;&e;
k=0;
// 行或列超出范围
ifm < 1 || m > || n < 1 || n >
k=1;
ifm < -1.i || m == -1.i
&& n <= -1.j // 行或列的顺序有错
k=1;
}whilek;
.i = m; //行下标
.j = n; //列下标
.e = e; //该下标所对应的值
}
return 1;
}
// 销毁稀疏矩阵M;所有元素置空
void DestroySMatrixTSMatrix M
{
=0;
=0;
=0;
}
// 输出稀疏矩阵M
void PrintSMatrixTSMatrix M
{
int i;
printf"n%d行%d列%d个非零元素..n";;;;
printf"%4s%4s%8sn"; "行"; "列"; "元素值";
fori=1;i<=;i++
printf"%4d%4d%8dn";.i;.j;.e;
}
// 由稀疏矩阵M复制得到T
int CopySMatrixTSMatrix M;TSMatrix T
{
T=M;
return 1;
}
// AddSMatrix函数要用到
int compint c1;int c2
{
int i;
ifc1 i=1; else ifc1==c2 i=0; else i=-1; return i; }
版权声明:本文标题:数据结构C语言版稀疏矩阵的三元组顺序表存储表示和实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1713699759a647569.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论