思路:
首先是要了解矩陣的加減運算法則,即同坐標的進行加減 ,所以只需要將兩個矩陣中相同的點進行加減,不同的只需要在三元陣列中,要乙個新的空間進行儲存即可
#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域分別用來儲存稀疏矩陣的行數,列數,非...