C C 利用三元組實現稀疏矩陣運算

2021-09-05 09:00:51 字數 1097 閱讀 1248

三元組((x,y),z)其中(x,y)表示非零元位置,z表示該座標的值

由於實際操作時,我們所用的矩陣0非常多,所以乙個乙個輸入值很浪費時間,也浪費空間,所以用一些三元組表示非零元即能表示乙個矩陣

三元組稀疏矩陣表示一些圖也是很不錯的選擇

這樣就很浪費空間,三元組直接

((0,1),1)

((1,2),1)

((3,4),1)

((5,6),1)

((7,8),1)

#include #include#include#define smax 1000

using namespace std;

typedef struct

spnode; //定義三元組型別

typedef struct

spmatrix;

void printmatrix(spmatrix m);

spmatrix creatematrix()

cout < num;

for(int k = 1; k <= num; k++)

return m;

}int i***ist(spmatrix m,spnode a)

spmatrix mul(spmatrix m1,spmatrix m2)

else

}return result;

}int main()

cout<

getchar();

getchar();

system("cls");

}while(1 == num|| 2 == num || 3 == num ||4 == num);

return 0;

}

稀疏矩陣(三元組順序表實現)

定義了乙個稀疏矩陣類,有轉置和相乘,相加三個功能,主要是熟悉稀疏矩陣的三元組順序表儲存的一些操作,和一般的矩陣不同的地方,兩個轉置的演算法,第乙個是較容易想到的,書上管它叫 按需點菜 法,就是按一開始列的順序,乙個個轉為新矩陣中行的順序。第二個叫作 按位就坐 法,就是條件兩個輔助陣列,確定每一列中第...

實現稀疏矩陣 採用三元組表示 的基本運算

實驗題目 實現稀疏矩陣 採用三元組表示 的基本運算 實驗目的 領會稀疏矩陣三元組的儲存結構及其基本演算法設計 實驗內容 假設n x n的稀疏矩陣a採用三元組表示,設計乙個程式,實現如下功能 1 生成如下兩個稀疏矩陣的三元組a和b。1 0 3 0 3 0 0 0 0 1 0 0 0 4 0 0 0 0...

稀疏矩陣的三元組順序儲存

該資料結構的操作主要是陣列的相加 和相乘,這兩個演算法全是我個人所寫,絕無參考,經測試應該少有bug a.h include define false 0 define true 1 define ok 1 define error 0 define max size 100 typedef int...