数据结构C语言实现稀疏矩阵的压缩和运算的三元组顺序表表示法Word文档格式.docx
- 文档编号:8417465
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:13
- 大小:16.14KB
数据结构C语言实现稀疏矩阵的压缩和运算的三元组顺序表表示法Word文档格式.docx
《数据结构C语言实现稀疏矩阵的压缩和运算的三元组顺序表表示法Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构C语言实现稀疏矩阵的压缩和运算的三元组顺序表表示法Word文档格式.docx(13页珍藏版)》请在冰点文库上搜索。
Ò
»
¶
µ
Ä
Ö
Þ
£
¬
Ì
ð
Ç
Ú
¸
´
Í
Î
¼
þ
#ifndefSYZHEAD_H_INCLUDED
#defineSYZHEAD_H_INCLUDED
#include&
lt;
stdio.h&
gt;
stdlib.h&
typedefintElemType;
typedefstruct
{
introw;
intcol;
ElemTypeelem;
}Triple;
Triple*pdata;
intrnum;
intcnum;
inttnum;
}TSMatrix;
intCreateMatrix(TSMatrix*M);
intDestroyMatrix(TSMatrix*M);
intPrintMatrix(TSMatrix*M);
intPrintTriple(TSMatrix*M);
intCopyMatrix(TSMatrix*Dest,TSMatrixSource);
intTransposeMatrix(TSMatrix*Dest,TSMatrixSource);
intAddMatrix(TSMatrix*Q,TSMatrixM,TSMatrixN);
intSubMatrix(TSMatrix*Q,TSMatrixM,TSMatrixN);
intMultMatrix(TSMatrix*Q,TSMatrixM,TSMatrixN);
#endif//SYZHEAD_H_INCLUDED
¯
quot;
syzhead.h&
intCreateMatrix(TSMatrix*M)
printf(&
pleaseinputthernum,cnum,tnumofM\n&
);
scanf(&
%d%d%d&
&
amp;
M-&
rnum,&
cnum,&
tnum);
M-&
pdata=(Triple*)malloc((M-&
tnum&
#43;
1)*sizeof(Triple));
if(!
pdata)
{
exit
(1);
}
intcount=1;
while(count&
=M-&
tnum)
pdata[count].row,&
pdata[count].col,&
pdata[count].elem);
if(M-&
pdata[count].row&
rnum||M-&
pdata[count].col&
cnum)
IndexERROR!
\n&
count&
&
;
return0;
}
intDestroyMatrix(TSMatrix*M)
ERROR!
free(M-&
pdata);
pdata=NULL;
cnum=0;
rnum=0;
tnum=0;
intPrintMatrix(TSMatrix*M)
inti,j;
for(i=1;
i&
rnum;
i&
)
for(j=1;
j&
cnum;
j&
if((M-&
pdata[count].row==i)&
(M-&
pdata[count].col==j))
%d\t&
M-&
else
0\t&
intPrintTriple(TSMatrix*M)
inti;
tnum;
%d\t%d\t%d\n&
pdata[i].row,M-&
pdata[i].col,M-&
pdata[i].elem);
intCopyMatrix(TSMatrix*Dest,TSMatrixSource)
Dest-&
cnum=Sum;
rnum=Source.rnum;
tnum=Source.tnum;
pdata=(Triple*)malloc((Dest-&
1)*sizeof(Triple));
inti=1;
while(i&
=Dest-&
pdata[i].row=Source.pdata[i].row;
pdata[i].col=Source.pdata[i].col;
pdata[i].elem=Source.pdata[i].elem;
intTransposeMatrix(TSMatrix*Dest,TSMatrixSource)
rnum=Sum;
cnum=Source.rnum;
for(col=1;
col&
=Sum;
col&
=Source.tnum;
if(Source.pdata[i].col==col)
pdata[count].row=Source.pdata[i].col;
pdata[count].col=Source.pdata[i].row;
pdata[count].elem=Source.pdata[i].elem;
intAddMatrix(TSMatrix*Q,TSMatrixM,TSMatrixN)
if(M.rnum!
=N.rnum||M.cnum!
=N.cnum)
can'
tadd!
Q-&
cnum=M.cnum;
rnum=M.rnum;
intmemsize=M.tnum&
N.tnum&
1;
pdata=(Triple*)malloc(memsize*sizeof(Triple));
Q-&
intj;
intcountm=1;
intcountn=1;
inttemp=0;
=Q-&
if((M.pdata[countm].row==i)&
(M.pdata[countm].col==j)&
(N.pdata[countn].row==i)&
(N.pdata[countn].col==j))
temp=M.pdata[countm].elem&
N.pdata[countn].elem;
countm&
countn&
elseif((M.pdata[countm].row==i)&
(M.pdata[countm].col==j))
temp=M.pdata[countm].elem;
elseif((N.pdata[countn].row==i)&
temp=N.pdata[countn].elem;
if(temp)
if(count&
memsize)
pdata=(Triple*)realloc(Q-&
pdata,(memsize&
1)*sizeof(Triple));
memsize&
#£
²
¿
©
43;
=1;
pdata[count].row=i;
pdata[count].col=j;
pdata[count].elem=temp;
temp=0;
tnum=count-1;
intSubMatrix(TSMatrix*Q,TSMatrixM,TSMatrixN)
tsub!
temp=M.pdata[countm].elem-N.pdata[countn].elem;
temp=-1*N.pdata[countn].elem;
intMultMatrix(TSMatrix*Q,TSMatrixM,TSMatrixN)
if(M.cnum!
=N.rnum)
tmult!
cnum=N.cnum;
intk;
TSMatrixTN;
TransposeMatrix(&
TN,N);
=M.rnum;
=TN.rnum;
while(M.pdata[countm].row&
i)
while(TN.pdata[countn].row&
j)
for(k=1;
k&
=M.cnum;
k&
if(M.pdata[countm].col&
countm&
M.tnum)
if(TN.pdata[countn].col&
countn&
N.tnum)
if(M.pdata[countm].row==i&
TN.pdata[countn].row==j&
M.pdata[countm].col==k&
TN.pdata[countn].col==k)
temp=temp&
M.pdata[countm].elem*TN.pdata[countn].elem;
if(temp!
=0)
countm=1;
countn=1;
÷
â
intmain()
/*TSMatrixM;
CreateMatrix(&
M);
PrintTriple(&
PrintMatrix(&
\n\n&
TSMatrixT;
CopyMatrix(&
T,M);
T);
ADD\n&
TSMatrixQ;
AddMatrix(&
Q,M,T);
Q);
SUB\n&
SubMatrix(&
*/
TSMatrixM;
TSMatrixN;
TSMatrixRes;
N);
Res,M,N);
Res);
//chengfu
matrixMisasfollow:
matrixNisasfollow:
MultMatrix(&
TripleResisasfollow:
matrixRESisasfollow:
return0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 语言 实现 稀疏 矩阵 压缩 运算 三元 顺序 表表