稀疏矩陣的壓縮儲存與轉置

2021-07-10 16:02:42 字數 1989 閱讀 3836

稀疏矩陣:

m*n的矩陣,矩陣中有效值的個數

遠小於無效值的個數,且這些資料的分布沒有規律。

1   0   3   0   5

0   0   0   0   0

0   0   0   0   0

2   0   4   0   6

0   0   0   0   0

0   0   0   0   0

稀疏矩陣的壓縮儲存:

壓縮儲存值儲存極少數的有效資料。使用

三元組儲存每乙個有效資料,三元組按原矩陣中的位置,

以行優先順序先後順序依次存放。

矩陣的轉置:

將原矩陣的行、列對換,也就是將[i][j]和[j][i]位置上的資料對換。

1   0   3   0   5                                             1   0   0   2   0   0

0   0   0   0   0                                             0   0   0   0   0   0

0   0   0   0   0  ——————————>     3   0   0   4   0   0

2   0   4   0   6                                             0   0   0   0   0   0

0   0   0   0   0                                             5   0   0   6   0   0

0   0   0   0   0                                        

#include using namespace std;

#include template struct trituple

;template class sparsematrix

sparsematrix(t *a, size_t m, size_t n, const t& invalid)

:_rowsize(m)

, _colsize(n)

, _invalid(invalid)

}} }

void display()

else

}cout << endl;

} cout << endl;

} sparsematrixtranspose()

index++;

}} return sp;

} sparsematrixfasttranspose()

rowstart[0] = 0;

for (int i = 1; i < _colsize; ++i)

// 借助rowstart定位轉置後壓縮儲存的位置

index = 0;

sp._array.resize(_array.size());

while (index < _array.size())

delete rowcounts;

delete rowstart;

return sp;

}private:

vector> _array;

size_t _rowsize;

size_t _colsize;

t _invalid;

};int main()

, ,

, ,

, ,

}; sparsematrixsp((int*)a, 6, 5, 0);

sp.display();

sparsematrixsp1 = sp.transpose();

sp1.display();

sparsematrixsp2 = sp.fasttranspose();

sp2.display();

return 0;

}

稀疏矩陣的壓縮儲存與轉置

稀疏矩陣的三元組表述法 型別結構 template struct triple template class sparsematrix 實現壓縮儲存 稀疏矩陣 template sparsematrix sparsematrix template sparsematrix sparsematrix ...

稀疏矩陣的壓縮儲存與轉置

眾所周知,稀疏矩陣的定義如下 設乙個m n的矩陣,矩陣中有效值的個數遠小於無效數的個數,且這些資料的分布沒有規律時,該矩陣是稀疏矩陣。稀疏矩陣的壓縮儲存儲存極少的有效資料,使用三元組儲存每乙個有效資料,三元組按原矩陣中的位置,以行優先順序一次存放。稀疏矩陣的轉置,即將原矩陣的行 列對換。詳細 如下 ...

稀疏矩陣的壓縮儲存及轉置

稀疏矩陣的壓縮儲存及轉置 include using namespace std 三元組順序表的型別定義 define itemsize 100 typedef struct int row,col int item thnode typedef struct thnode data data 0 ...