/*
* 檔名稱:cpp1.
* 作 者:劉思源
* 完成日期:2017 年 10 月 22 日
* 版 本 號:v1.0
** 問題描述:採用三元組儲存稀疏矩陣,設計兩個稀疏矩陣相加的運算演算法
提示1:兩個行數、列數相同的矩陣可以相加
提示2:充分利用已經建立好的演算法庫解決問題
提示3:教材例6.3已經給出兩個稀疏矩陣相加的運算的演算法,但未利用基本運算。請比較這兩種方案
* 輸入描述:無需輸入
* 程式輸出:實現各種演算法的函式的測試結果*/
解答一:
[cpp]view plain
copy
#include
#include "tup.h"
bool
matadd(tsmatrix a,tsmatrix b,tsmatrix &c)
return
true
; }
intmain()
, ,
, ,
,
};
intb[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]view plain
copy
#include
#include "tup.h"
bool
matadd(tsmatrix a,tsmatrix b,tsmatrix &c)
else
if(a.data[i].c>b.data[j].c)
//a元素的列號大於b元素的列號
else
//a元素的列號等於b元素的列號
i++;
j++;
} }
else
if(a.data[i].r//a元素的行號小於b元素的行號
else
//a元素的行號大於b元素的行號
c.nums=k;
} return
true
; }
intmain()
, ,
, ,
,
};
intb[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;
}
執行結果:
第八周專案4 稀疏矩陣的三元組表示的實現及應用
檔名稱 cpp1.作 者 劉思源 完成日期 2017 年 10 月 22 日 版 本 號 v1.0 問題描述 建立稀疏矩陣三元組表示的演算法庫,包括 頭文tup.h,定義資料型別,宣告函式 原始檔tup.cpp,實現稀疏矩陣三元組表示的基本運算,主要演算法包括 void creatmat tsmat...
第八周 專案4 稀疏矩陣的三元組表示的實現及應用
define m 6 define n 7 define maxsize 100 矩陣中非零元素最多個數 typedef int elemtype typedef struct tupnode 三元組定義 typedef struct tsmatrix 三元組順序表定義 void creatmat ...
第八周專案3 稀疏矩陣的三元組表示的實現及應用
標頭檔案 tup.h ifndef tup h included define tup h included define m 6 define n 7 define maxsize 100 矩陣中非零元素最多個數 typedef int elemtype typedef struct tupnod...