題目描述:
思路: 先使用乙個結構體對稀疏矩陣進行壓縮儲存
typedef struct array;
之後用歸併的思想,將a矩陣與b矩陣相加的結果存放在c矩陣中if (a[i].row //若a行號小於b行號,則將a放入c else if (a[i].row > b[j].row)//若a行號大於b行號,則存b else //若都不是,則代表a行號等於b行號 //否則按照列號從小到大存進c else if (a[i].col c[k++] = a[i++]; else c[k++] = b[j++]; }
若a,b矩陣還有剩餘元素,全部放入c即可while (i < lena) while (j < lenb)
完整**如下:#include #include using namespace std;typedef struct array;int main() cin >> n2; while (n2--) int lena = i; int lenb = j; i = 0; j = 0; int k = 0; while (i < lena && j < lenb) else if (a[i].row > b[j].row) else else if (a[i].col < b[j].col) c[k++] = a[i++]; else c[k++] = b[j++]; } } while (i < lena) while (j < lenb) int lenc = k; int cnt = 0; for (k = 0; k < lenc; k++) cout << cnt << endl; for (k = 0; k < lenc; k++) } return 0;}
資料結構 稀疏矩陣
稀疏矩陣 矩陣中有效資料的個數遠遠小於無效資料的個數,則可以稱之為稀疏矩陣 如果還像以前那樣將每個稀疏矩陣的資料都儲存起來,則會造成記憶體的很大程度的浪費,所以應用特別的儲存方式。稀疏矩陣的壓縮儲存 使用 三元組儲存每乙個有效資料,三元組按原矩陣中的位置,以行優先順序先後順序依次存放。矩陣的轉置 將...
資料結構 稀疏矩陣
簡單的說,設矩陣amn中有s個非零元素,若s遠遠小於矩陣元素的總數,則稱a為稀疏矩陣。s與m x n的比稱為矩陣的稀疏因子。當用陣列儲存稀疏矩陣中的元素時,僅有少部分的空間被利用,造成空間的浪費,為了節省儲存空間,可以採用一種壓縮的儲存方法來表示稀疏矩陣。由於非零元素的分布一般是沒有規律的,因此在儲...
資料結構 稀疏矩陣
稀疏矩陣時矩陣中的一種特殊情況,其非零元素的個數遠遠小於零元素個數。1.順序儲存 非零元素三元組的結構定義 struct triple 其中row代表行號,col代表列號,val用來儲存元素值 稀疏矩陣的順序儲存型別定義 struct smatrix m,n,t域分別用來儲存稀疏矩陣的行數,列數,非...