資料結構 稀疏矩陣的加減運算

2021-08-29 05:00:35 字數 2408 閱讀 1988

思路:

首先是要了解矩陣的加減運算法則,即同坐標的進行加減 ,所以只需要將兩個矩陣中相同的點進行加減,不同的只需要在三元陣列中,要乙個新的空間進行儲存即可

#includeusing namespace std;

typedef

struct node node;

void initlist(node *, int); // 初始化三元陣列

int inputlist(node *, int[3], int, int); // 將 稀疏矩陣的資料存入三元陣列中

void printlist(node *, int); // 列印三元陣列

void transpositionlist(node * list, int); // 矩陣的轉置

void sort(node *, int); // 矩陣轉置後的對 行 進行排序

void puls(node *, int&, node *, int); // 矩陣相加,結果為 前乙個矩陣

int check(node *, int,int ,int ); // 在第二個矩陣中 查詢 和 第乙個矩陣相同的位置座標,並返回 資料

void minus(node *, int&, node *, int); // 矩陣相減,結果為 前乙個矩陣

int main(void) ,,,

,};

node list1[5 * 3];

initlist(list1, 15);

int len1 = inputlist(list1, arr1, 5, 3);

cout << "第乙個轉置前:" << endl;

printlist(list1, len1);

transpositionlist(list1, len1);

cout << "第乙個轉置後:" << endl;

printlist(list1, len1);

cout << "********************===" << endl;

int arr2[5][3] = ,,,

,};

node list2[5 * 3];

initlist(list2, 15);

int len2 = inputlist(list2, arr2, 5, 3);

cout << "第二個轉置前:" << endl;

printlist(list2, len2);

transpositionlist(list2, len2);

cout << "第二個轉置後:" << endl;

printlist(list2, len2);

cout << "********************===" << endl;

cout << "矩陣相加:" << endl;

puls(list1, len1, list2, len2);

printlist(list1, len1);

cout << "********************===" << endl;

cout << "矩陣相減:" << endl;

minus(list1, len1, list2, len2);

printlist(list1, len1);

return 0;

}// 在乙個儲存中查詢相同座標的點,並返回這個點的資料域部分,並且將此資料域改為 0 ,以便兩個矩陣有不相交的點的運算

int check(node * list2, int len2, int row, int col)

} return 0;

}void minus(node * list1, int& len1, node * list2, int len2)

for (int i = 0; i < len2; i++) }

sort(list1, len1);

}void puls(node * list1, int& len1, node * list2, int len2)

for (int i = 0; i < len2; i++) }

sort(list1,len1);

}void printlist(node * list, int n)

} cout << endl;

}void transpositionlist(node * list, int len)

sort(list, len);

}void sort(node * list, int len)

} }}int inputlist(node * list, int a[3], int row, int col)

} }return count;

}void initlist(node * list, int n)

}

資料結構 稀疏矩陣

稀疏矩陣 矩陣中有效資料的個數遠遠小於無效資料的個數,則可以稱之為稀疏矩陣 如果還像以前那樣將每個稀疏矩陣的資料都儲存起來,則會造成記憶體的很大程度的浪費,所以應用特別的儲存方式。稀疏矩陣的壓縮儲存 使用 三元組儲存每乙個有效資料,三元組按原矩陣中的位置,以行優先順序先後順序依次存放。矩陣的轉置 將...

資料結構 稀疏矩陣

簡單的說,設矩陣amn中有s個非零元素,若s遠遠小於矩陣元素的總數,則稱a為稀疏矩陣。s與m x n的比稱為矩陣的稀疏因子。當用陣列儲存稀疏矩陣中的元素時,僅有少部分的空間被利用,造成空間的浪費,為了節省儲存空間,可以採用一種壓縮的儲存方法來表示稀疏矩陣。由於非零元素的分布一般是沒有規律的,因此在儲...

資料結構 稀疏矩陣

稀疏矩陣時矩陣中的一種特殊情況,其非零元素的個數遠遠小於零元素個數。1.順序儲存 非零元素三元組的結構定義 struct triple 其中row代表行號,col代表列號,val用來儲存元素值 稀疏矩陣的順序儲存型別定義 struct smatrix m,n,t域分別用來儲存稀疏矩陣的行數,列數,非...