当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

华中科技大学:《数据结构》课程教学资源(PPT课件讲稿)作业解答5

资源类别:文库,文档格式:PPT,文档页数:8,文件大小:86.5KB,团购合买
5.21假设稀疏矩阵A和B均以三元组顺序表作为存储结构:求 C=A+B.
点击下载完整版文档(PPT)

20083

数据结构作业 2003 年 第五章 数组

521假设稀疏矩阵A和B均以三元组顺序表作为存储结构:求 C=A+B。 (1)定义类型: +define MAXSIze 100 typedef struct t int i,j;//非零元行、列下标 ElemType e } Triple;//定义三元组 typedef struct Triple dataLMAXSIzE+1 int mu, nu, tu. } SMAtrix;//定义三元组表

(1) 定义类型: #define MAXSIZE 100 typedef struct { int i,j;//非零元行、列下标 ElemType e; } Triple; //定义三元组 typedef struct { Triple data[MAXSIZE+1]; int mu,nu,tu; } TSMatrix; //定义三元组表 5.21 假设稀疏矩阵A和B均以三元组顺序表作为存储结构:求 C=A+B

int ADD(TSMatrix *A, TSMatrix *B, TSMatrixNC) intm=1,n=1,k=1;/*读:m,n,写:k* if(A->mu!=B->mu A->nu!=B->nu) return error while (mtu & ntu /*比较A->data和B->data的行、列*/ /*必要时:m+,n++,k++*/ while(mtu)/米复制A中为处理完的三元组*/ while(ntu)/*复制B中为处理完的三元组米/

int ADD(TSMatrix *A, TSMatrix *B, TSMatrix *C) { int m=1,n=1,k=1; /*读:m,n, 写:k */ if (A->mu!=B->mu || A->nu!=B->nu) return ERROR; while (mtu && ntu) { /*比较A->data和B->data的行、列*/ /*必要时:m++, n++, k++ */ } while (mtu ) /*复制A中为处理完的三元组*/ while (ntu ) /*复制B中为处理完的三元组*/ }

int ADD(TSMatrix *A, TSMatrix *B, TSMatrixNC) intm=1,n=1,k=1;/*读:m,n,写:k* if(A->mu!=B->mu A->nu!=B->nu) return error while (mtu & ntu /*比较A->data和B->data的行、列*/ /*必要时:m+,n++,k++*/ while(mtu)/米复制A中为处理完的三元组*/ while(ntu)/*复制B中为处理完的三元组米/

int ADD(TSMatrix *A, TSMatrix *B, TSMatrix *C) { int m=1,n=1,k=1; /*读:m,n, 写:k */ if (A->mu!=B->mu || A->nu!=B->nu) return ERROR; while (mtu && ntu) { /*比较A->data和B->data的行、列*/ /*必要时:m++, n++, k++ */ } while (mtu ) /*复制A中为处理完的三元组*/ while (ntu ) /*复制B中为处理完的三元组*/ }

int ADD(TSMatrix *A, TSMatrix *B, TSMatrixNC) intm=1,n=1,k=1;/*读:m,n,写:k* if(A->mu!=B->mu A->nu!=B->nu) return error while (mtu & ntu int11,12; 11=A->data [m]. i* A->nu+ A->data [m]. j+1 12=B->data[n]. i* B->nu+ B->data[n]. j+1 f(11<12){/*复制A中的三元组,m++,k+米/ else if(11==12){/*相加* else{/*复制B中的三元组,n+,k++*/}

int ADD(TSMatrix *A, TSMatrix *B, TSMatrix *C) { int m=1,n=1,k=1; /*读:m,n, 写:k */ if (A->mu!=B->mu || A->nu!=B->nu) return ERROR; while (mtu && ntu) { int l1,l2; l1= A->data[m].i* A->nu+ A->data[m].j+1; l2= B->data[n].i* B->nu+ B->data[n].j+1; if (l1<l2) { /*复制A中的三元组,m++, k++*/ } else if (ll==l2) {/*相加*/} else {/*复制B中的三元组,n++, k++*/} }…..}

int add( SMAtrix*A, SMAtrix米B, SMAtrix米C intm=1,n=1,k=1;/*读:m,n,写:k* if (A->mu!=B->mu A-nu! =B->nu) return ERROR while (mtu & ntu int11,12; 11=A-data[m]. i* A->nu+ A->datalm] j+1 12=B->data[n]. i*k B->nu+ B->data[n]. j+1 if(11data[]=A->datalm m++,k++

int ADD(TSMatrix *A, TSMatrix *B, TSMatrix *C) { int m=1,n=1,k=1; /*读:m,n, 写:k */ if (A->mu!=B->mu || A->nu!=B->nu) return ERROR; while (mtu && ntu) { int l1,l2; l1= A->data[m].i* A->nu+ A->data[m].j+1; l2= B->data[n].i* B->nu+ B->data[n].j+1; if (l1data[k]=A->data[m]; m++, k++ }

else if(11=-12)( C->datalk]i=B->datain.i C->datalk] j=B->data[n]. j C->datalk] e= A->data [n] e+ B->datalnle if(C->data[k].e)k++;/*非0元素移动*/ m++,n++ e⊥se C->datalk]=B->dataIn] n++,k++

else if (ll==l2) { C->data[k].i=B->data[n].i; C->data[k].j=B->data[n].j; C->data[k].e= A->data[n].e+ B->data[n].e; if (C->data[k].e ) k++; /*非0元素移动*/ m++,n++; } else { C->data[k]=B->data[n]; n++, k++ } }

while(mtu)/*复制A中为处理完的三元组*/ C->datalk]=A->data[m] m++,k++ while(ntu)/*复制B中为处理完的三元组*/ C->data[k]=B->datain] n++,k+} C->tu=k-1: C->mu=A->mu: C->nu=A->nu return OK

while (mtu ) /*复制A中为处理完的三元组*/ { C->data[k]=A->data[m]; m++, k++} while (ntu ) /*复制B中为处理完的三元组*/ { C->data[k]=B->data[n]; n++, k++} C->tu=k-1; C->mu=A->mu; C->nu=A->nu; return OK; }

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
已到末页,全文结束
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有