数据结构与算法设计PPT (15).pdf
《数据结构与算法设计PPT (15).pdf》由会员分享,可在线阅读,更多相关《数据结构与算法设计PPT (15).pdf(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 字符串与数组3.5 稀疏矩阵的存储压缩 0000280000000091039000000006000017000110150022000A76-=稀疏矩阵(Sparse Matrix)行数m=6,列数n=7,非零元素个数t=6非零元素个数较少,分布没有规律template class SparseMatrixint Rows,Cols,Terms;/行/列/非零元素数TrituplesmArrayMaxTerms;public:/三元组表SparseMatrix(int MaxRow,int Maxcol);SparseMatrixTranspose();/转置SparseMatri
2、x /相加Add(SparseMatrixb);SparseMatrix /相乘Multiply(SparseMatrixb);稀疏矩阵(SparseMatrix)的抽象数据类型A的三元组顺序表图示A=row col val0 01 12 23 34 45 56 67 78 82 0 -35 0 150 1 124 1 180 2 93 2 245 3 -72 5 14012900000000000-3000014000240000018000001500-7000三元组(Trituple)类的定义template class SparseMatrix;template classTritup
3、lefriend class SparseMatrixprivate:int row,col;/非零元素所在行号/列号Type value;/非零元素的值 r ro ow w c co ol l v va al lu ue e-=-=0000015003901700000000006022280000000001100910000B 0000280000000091039000000006000017000110150022000A6776稀疏矩阵稀疏矩阵转置矩阵转置矩阵用三元组表表示的稀疏矩阵及其转置 行行行行(r ro ow w)列列列列(c co ol l)值值值值(v va al lu
4、 ue e)行行行行(r ro ow w)列列列列(c co ol l)值值值值(v va al lu ue e)0 0 0 3 3 2 22 2 0 0 0 4 4 9 91 1 1 0 0 6 6 1 15 5 1 1 1 1 1 1 11 1 2 1 1 1 1 1 11 1 2 2 2 5 5 2 28 8 3 1 1 5 5 1 17 7 3 3 3 0 0 2 22 2 4 2 2 3 3 (6 6 4 3 3 2 2 (6 6 5 3 3 5 5 3 39 9 5 5 5 1 1 1 17 7 6 4 4 0 0 9 91 1 6 5 5 3 3 3 39 9 7 5 5 2 2
5、 2 28 8 7 6 6 0 0 1 16 6稀疏矩阵转置算法思想 设矩阵列数为Cols,对矩阵三元组表扫描Cols 次。第k 次检测列号为k 的项。第k 次扫描找寻所有列号为k 的项,将其行号变列号、列号变行号,顺次存于转置矩阵三元组表。设矩阵三元组表总共有Terms 项,其时间代价为O(Cols*Terms)。若矩阵有 200 行,200 列,10,000 个非零元素,总共有 2,000,000 次处理。template SparseMatrixSparseMatrix:Transpose()SparseMatrixb(Cols,Rows);b.Rows=Cols;b.Cols=Rows
6、;b.Terms=Terms;/转置矩阵的列数,行数和非零元素个数if(Terms 0)int CurrentB=0;/转置三元组表存放指针用三元组表表示的稀疏矩阵转置过程for(intk=0;k Cols;k+)for(inti=0;i Terms;i+)if(smArrayi.col=k)b.smArrayCurrentB.row=k;b.smArrayCurrentB.col=smArrayi.row;b.smArrayCurrentB.value=smArrayi.value;CurrentB+;return b;用三元组表表示的稀疏矩阵及其转置 行行行行 (r ro ow w)列列列
7、列(c co ol l)值值值值(v va al lu ue e)行行行行(r ro ow w)列列列列(c co ol l)值值值值(v va al lu ue e)0 0 0 3 3 2 22 2 0 1 0 0 6 6 1 15 5 1 2 1 1 1 1 1 11 1 2 3 1 1 5 5 1 17 7 3 4 2 2 3 3 -6 6 4 5 3 3 5 5 3 39 9 5 6 4 4 0 0 9 91 1 6 7 5 5 2 2 2 28 8 7 CurrentB按照行主序存储用三元组表表示的稀疏矩阵及其转置 行行行行(r ro ow w)列列列列(c co ol l)值值值值
8、(v va al lu ue e)行行行行(r ro ow w)列列列列(c co ol l)值值值值(v va al lu ue e)0 0 0 3 3 2 22 2 0 0 0 4 4 9 91 1 1 0 0 6 6 1 15 5 1 1 1 1 1 1 11 1 2 1 1 1 1 1 11 1 2 2 2 5 5 2 28 8 3 1 1 5 5 1 17 7 3 3 3 0 0 2 22 2 4 2 2 3 3 (6 6 4 3 3 2 2 (6 6 5 3 3 5 5 3 39 9 5 5 5 1 1 1 17 7 6 4 4 0 0 9 91 1 6 5 5 3 3 3 39
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构与算法设计PPT 15 数据结构 算法 设计 PPT 15
限制150内