稀疏矩陣的轉置

2021-05-21 18:31:29 字數 628 閱讀 7003

//稀疏矩陣的轉置

//使用了兩個輔助陣列

//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元素。即...