//稀疏矩陣的轉置
//使用了兩個輔助陣列
//num : num[j] : 矩陣a中第j列非零元素的個數
//cpot : cpot[j]: 矩陣a中第j列的第乙個非零元素在其轉置矩陣b的三元組順序表的位置。
//推出2個規則:
//1 cpot[1] = 1;
//2 cpot[j] = cpot[j-1]+num[j-1];
//演算法思路:
//根據1,2規則計算num陣列和cpot陣列
//根據cpot陣列的指示求轉置,將a的三元組順序表中每個元素直接放入b的三元組順序表中的適當位置.
#define max 100
struct element
;struct triple
;void transpos(triple &a,triple &b)
//求a中每一列中非0元素的個數
for(j=1;j<=a.t;j++)
//num已經初始化好了
//初始化cpot;
cpot[1] = 1;
for(j=2;j<=a.n;j++)
//cpot也初始化好了
//求轉置
for(p=1;p<=a.t;p++)}}
稀疏矩陣轉置
輸出稀疏矩陣的轉置矩陣。行列均不大於20 第一行輸入兩個正整數n和m,分別表示矩陣的行數和列數,然後輸入矩陣三元組,最後輸入 0 0 0 表示結束輸入。轉置後的矩陣。include include define maxsize 100 typedef struct triple typedef st...
稀疏矩陣轉置矩陣
num 矩陣a中某列的非零元素的個數 cpot 初值表示矩陣a中某列第乙個非零元素在b中的位置,並有如下遞推 cpot 1 0 cpot col cpot col 1 num col 1 2 col nu end right.const int maxterm 100 struct sparsema...
稀疏矩陣的轉置
介紹三種求稀疏矩陣的轉置的矩陣演算法。typedef struct element elem elem b m 1 簡單複製法 for inti 0 i i 時間複雜度 o t 缺點 轉置結果不是按行順序儲存的,而是按列順序儲存的。2 逐行複製法 思想 按行號從小到大依次複製矩陣中的各行非0元素。即...