/
作 者:孫子策
完成日期:2016.10.27
問題描述:提示1:兩個行數、列數相同的矩陣可以相加
提示2:充分利用已經建立好的演算法庫解決問題
/
標頭檔案:
#ifndef tup_h_included
#define tup_h_included
#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
main.cpp:
#include #include "a.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;
}
.cpp**:
#include "stdio.h"
#include "a.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) //沒有非零元素時返回
知識點總結:
判斷是否為0以及相加後是否為0等情況要多重分析。
心得體會:
還是有些不明白。
第九周專案三稀疏矩陣的三元組表示
檔名稱 main.cpp,tup.cpp,tup.h 完成日期 2015年10月31日 版本號 codeblocks 問題描述 稀疏矩陣的三元組表示相關的演算法庫採用程式的多檔案組織形式 輸入描述 無 程式輸出 見執行結果 ifndef tup h included define tup h inc...
稀疏矩陣的三元組順序儲存
該資料結構的操作主要是陣列的相加 和相乘,這兩個演算法全是我個人所寫,絕無參考,經測試應該少有bug a.h include define false 0 define true 1 define ok 1 define error 0 define max size 100 typedef int...
稀疏矩陣的三元組儲存演算法
稀疏矩陣,是零元素較多的矩陣。一般只要滿足 t 1 3 m n,t是非零元素個數,mn是矩陣行列數,就可以用三元組表示稀疏矩陣,可以節省空間。稀疏矩陣的壓縮儲存採用三元組的方法實現。其儲存規則是 每乙個非零元素佔一行,每行中包含非零元素所在的行號 列號 非零元素的數值。為完整描述稀疏矩陣,一般在第一...