第九周專案3 稀疏矩陣加法運算

2021-07-07 02:33:34 字數 1934 閱讀 5498

/*

*檔名稱:xishujuzhen.cpp

*完成日期:2023年11月9日

*版本號:vc++6.0

**問題描述:稀疏矩陣加法

*輸入描述:無

*程式輸出:稀疏矩陣的加法

*/

#ifndef tup_h_included

#define tup_h_included

#include#define m 6

#define n 7

#define maxsize 100 //矩陣中非零元素最多個數

typedef int elemtype;

typedef struct

tupnode; //三元組定義

typedef struct

tsmatrix; //三元組順序表定義

void creatmat(tsmatrix &t,elemtype a[m][n]); //從乙個二維稀疏矩陣建立其三元組表示

bool value(tsmatrix &t,elemtype x,int i,int j); //三元組元素賦值

bool assign(tsmatrix t,elemtype &x,int i,int j); //將指定位置的元素值賦給變數

void dispmat(tsmatrix t);//輸出三元組

void trantat(tsmatrix t,tsmatrix &tb);//矩陣轉置

bool matadd(tsmatrix a,tsmatrix b,tsmatrix &c);//加法

#endif // tup_h_included

#include"head.h"

int main()

, ,,,

,};int b[m][n]=,,

,,,};

creatmat(ta,a);

creatmat(tb,b);

printf("a:\n");

dispmat(ta);

printf("b:\n");

dispmat(tb);

if(matadd(ta, tb, tc))

else

return 0;

}

#include "head.h"

void creatmat(tsmatrix &t,elemtype a[m][n])

t.data[k].r=i;

t.data[k].c=j;

t.data[k].d=x;

t.nums++;

}return true; //成功時返回true

}bool assign(tsmatrix t,elemtype &x,int i,int j) //將指定位置的元素值賦給變數

void dispmat(tsmatrix t) //輸出三元組

{ int i;

if (t.nums<=0) //沒有非零元素時返回

return;

printf("\t%d\t%d\t%d\n",t.rows,t.cols,t.nums);

printf("\t------------------\n");

for (i=0; i

執行結果:

知識點總結:

根據三元組運算,將對應的行號列號相等的元素相加。

第九周專案3 稀疏矩陣加法運算

檔名稱 yi.cpp 完成日期 2016年11月3日 版本號 vc 6.0 問題描述 稀疏矩陣演算法 輸入描述 無 程式輸出 稀疏矩陣的輸出,轉置。include include tup.h bool matadd tsmatrix a,tsmatrix b,tsmatrix c tupnode 三...

第九周專案6 稀疏矩陣相加

問題及 03.all right reserved.04.檔名稱 稀疏矩陣的相加 cpp 06.完成日期 2016年10月27日 07.版本號 v1.0 08.09.問題描述 採用三元組儲存稀疏矩陣,設計兩個稀疏矩陣相加的運算演算法 10.提示1 兩個行數 列數相同的矩陣可以相加 11.提示2 充分...

第九周專案2 矩陣運算

問題及 all right reserved.檔名稱 矩陣運算.cpp 完成日期 2015年10月23日 版本號 v1.0 問題描述 設計演算法,實現兩個用壓縮形式儲存的對稱矩陣a和b的加法和乘法。實現中請使用好前面設計的基本運算。輸入描述 兩個矩陣 程式輸出 兩個矩陣相加與相乘的結果 includ...