#include
#include
#define ok 1
#define error 0
#define overflow 0
typedef
int elemtype;
typedef
int status;
typedef
struct
triple;
//三元組
typedef
struct
tsmatrix ;
//三元組順序表
//num[j]統計矩陣a的a.data中第j列非零元素的個數
//cpos[j]表示矩陣a的a.data中第j列的第乙個非零元在b.data中的起始位置
//矩陣a中第j列的起始位置等於第j-1列的起始位置加上第j-1的非零元的個數
status fasttransposesmatrix
(tsmatrix m,tsmatrix &t)
}free
(num)
;free
(cpos)
;return ok;
}
//這個建立粗糙無比,只是單純為了建立乙個出來驗證結果而已
status createsmatrix
(tsmatrix &m)
void
printsmatrix
(tsmatrix m)
}
int main (
)
結果
稀疏矩陣的轉置(矩陣轉置和快速轉置)
實現矩陣的轉置 1.將矩陣的行列值相互轉換。2.將每個三元組中的i和j交換。3.重排三元組之間的次序便可實現矩陣的轉置。void transposesmatrix tsmatrix m,tsmatrix t return transposesmatrix快速轉置的原理是 如果能預先確定矩陣m中每一列...
稀疏矩陣的轉置與快速轉置
假設在m n的矩陣中,有t個元素不為0。令稀疏因子s t m n 通常認為s 0.05時稱為稀疏矩陣。有時為了節省儲存空間,可以對這類矩陣進行壓縮儲存。所謂的壓縮儲存就是,為多個相同的值分配儲存在乙個空間,對零元不分配空間。而稀疏矩陣是只儲存有效值,無效值只分配乙個空間。在這裡我們用乙個順序表vec...
稀疏矩陣快速轉置
include include typedef structmatrix typedef int spmatrix 100 3 三元陣列別名 spmatrix a,b 建立兩個三元陣列,a為轉置前,b為轉置後 int pos 1000 num 1000 int getthree matrix s,i...