用稀疏矩陣的三元組進行加法

2021-08-18 19:09:46 字數 907 閱讀 2192

演算法思想:在進行三元組的加法時

前提條件

:用while迴圈,它的出口條件為 i,j 都小於他們分別所對應的三元組中元素的個數。

滿足前提條件的情況下,分

3種情況:

1. 行列數相等;(1)相加等於零,則直接跳過,i++;j++;。(2)相加不為零,把相加後的數寫下來,i++;j++;

2. a的行大於b的行;(1)寫下行數小的乙個,也就是b。然後進行b的j++;

3. a的行小於b的行;(1)寫下行數小的乙個,也就是a。然後進行a的i++;

當 i,j 其中乙個或者兩個不滿足前提條件時,退出迴圈。此時又分兩種情況:

1. i

>a的三元組中元素的個數並且 j

<=b的三元組中的元素的個數,此時寫b。寫b時注意用while迴圈把b剩下的元素全都寫下來。

2. j

>b的三元組中元素的個數並且 i

<=a的三元組中的元素的個數,此時寫a。寫a時注意用while迴圈把a剩下的元素全都寫下來。

所以,**如下:

#include typedef structmatrix;

void creat(matrix *a)

void input(matrix a)

}// 三元組表示

void three(matrix b,int a[100][3])

else

if(a[i][0]>b[j][0])

else

if(a[i][0]a[0][2])

}else

if(j>b[0][2])

}c[0][0]=a[0][0];

c[0][1]=a[0][1];

c[0][2]=m-1;

}int main()

稀疏矩陣的轉置用三元組表示

include include using namespace std const int maxsize 100 定義非零元素的對多個數 const int maxrow 10 定義陣列的行數的最大值 typedef struct triple typedef struct tsmatrix ty...

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

該資料結構的操作主要是陣列的相加 和相乘,這兩個演算法全是我個人所寫,絕無參考,經測試應該少有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是矩陣行列數,就可以用三元組表示稀疏矩陣,可以節省空間。稀疏矩陣的壓縮儲存採用三元組的方法實現。其儲存規則是 每乙個非零元素佔一行,每行中包含非零元素所在的行號 列號 非零元素的數值。為完整描述稀疏矩陣,一般在第一...