稀疏矩阵十字链表基本函数.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
稀疏矩阵十字链表基本函数

稀疏矩阵十字链表基本函数 1.宏定义 #includestdio.h #includestdlib.h #define datatype int #define MAXROW 100 #define MAXCOL 100 2.结构体 typedef struct mnode { int row,col; datatype v; struct mnode *down,*right; }Mnode,*Mlink; typedef struct { int mu,nu,tu; Mnode *rlink[MAXROW],*clink[MAXCOL]; }Crosslink; 3. 稀疏矩阵十字链表基本函数 Crosslink *Creat_Crosslink() /*建立十字链表函数1.先决条件:2.函数作用:创建十字链表存储的稀疏矩阵*/ { Crosslink *H; Mnode *p,*q; int i,j,k,v; H=(Crosslink *)malloc(sizeof(Crosslink)); printf(请输入矩阵的行列及非零元素的个数:\n); scanf(%d%d%d,H-mu,H-nu,H-tu); for(k=1;k=H-mu;k++) H-rlink[k]=NULL; for(k=1;k=H-nu;k++) H-clink[k]=NULL; printf(请输入%d个三元组:\n,H-tu); for(k=1;k=H-tu;k++) { scanf(%d%d%d,i,j,v); p=(Mnode *)malloc(sizeof(Mnode)); p-row=i; p-col=j; p-v=v; q=H-rlink[i]; if(q==NULL||q-colj) { p-right=q; H-rlink[i]=p; } else { while(q-right(q-right-col)j) q=q-right; p-right=q-right; q-right=p; } q=H-clink[j]; if(q==NULL||q-rowi) { p-down=q; H-clink[j]=p; } else { while(q-down(q-down-row)i) q=q-down; p-down=q-down; q-down=p; } } return H; } Crosslink *Add_Crosslink(Crosslink *HA,Crosslink *HB) /*十字链表相加函数1.先决条件:2.函数作用:将两个十字链表HA,HB相加到HC中,并返回HC*/ { Crosslink *HC; Mnode *pa,*pb,*pc; Mnode *rl_rear[100],*cl_rear[100];//Mnode *rl_rear[m+1],*cl_rear[n+1]; int i,k; if(HA-mu!=HB-mu||HA-nu!=HB-nu) return NULL; HC=(Crosslink *)malloc(sizeof(Crosslink)); HC-mu=HA-mu; HC-nu=HA-nu; for(k=1;k=HC-mu;k++) HC-rlink[k]=NULL; for(k=1;k=HC-nu;k++) HC-clink[k]=NULL; for(k=1;k=HC-mu;k++) rl_rear[k]=HC-rlink[k]; for(k=1;k=HC-nu;k++) cl_rear[k]=HC-clink[k]; for(i=1;i=HC-mu;i++) { pa=HA-rlink[i]; pb=HB-rlink[i]; while(pa||pb) { if(papbpa-col==pb-colpa-v+pb-v==0) { pa=pa-right; pb=pb-right; } else { pc=(Mnode *)malloc(sizeof(Mnode)); pc-row=i; pc-right=NULL; pc-down=NULL; if(pa-colpb-col||pb==NULL) { pc-col=pa-col; pc-v=pa-v; pa=pa-right; } else i

文档评论(0)

asd522513656 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档