稀疏矩阵的三元组表示

稀疏矩阵的三元组表示

数据结构作业想找个方式保留下来[嘿嘿]

  1. 掌握稀疏矩阵的特点(三元组存储方法)。

  2. 掌握稀疏矩阵的三元组存储方法。

  3. 稀疏矩阵的存储及基本运算。
    (1)针对给出的两个稀疏矩阵a和b,分别输出各自的三元组表示形式。
    其中,a,b矩阵表示如下:

a,b矩阵三元组表示形式,预期结果下图所示:

稀疏矩阵的三元组表示_第1张图片
稀疏矩阵的三元组表示_第2张图片


```cpp
#include
#include
#define M 4
#define N 4
#define MaxSize 7
using namespace std;
typedef int ElemType;
//定义
typedef struct
{
    int r;
    int c;
    ElemType d;
} TupNode;
typedef struct
{
    int rows;
    int cols;
    int nums;
    TupNode data[MaxSize];
} TSMatrix;
//创建
void CreatMat(TSMatrix &t,ElemType A[M][N])
{
    int i,j;
    t.rows=M;
    t.cols=N;
    t.nums=0;
    for(i=0; i<M; i++)
    {
        for(j=0; j<N; j++)
        {
            if(A[i][j]!=0)
            {
                t.data[t.nums].r=i;
                t.data[t.nums].c=j;
                t.data[t.nums].d=A[i][j];
                t.nums++;
            }
        }
    }
}
//输出
void DispMat(TSMatrix t)
{
    int k;
    if(t.nums<=0)

        return ;
    printf("\t%d\t%d\t%d\n",t.rows,t.cols,t.nums);
    printf("\t-----------------\n");
    for(k=0; k<t.nums; k++)
        printf("\t%d\t%d\t%d\n",t.data[k].r,t.data[k].c,t.data[k].d);
}

int main()
{
    TSMatrix t;
    ElemType A[M][N]= {1,0,3,0,0,1,0,0,0,0,1,0,0,0,1,1};
    ElemType B[M][N]= {3,0,0,0,0,4,0,0,0,0,1,0,0,0,0,2};
printf("a的三元组:\n");
    CreatMat(t,A);
    DispMat(t);
printf("b的三元组:\n");
    CreatMat(t,B);
    DispMat(t);
    return 0;
}


你可能感兴趣的:(数据结构,数据结构,c++)