




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 课程设计所抽题目: 采用十字链表表示稀疏矩阵,并实现矩阵的加法运算。要求:要检查有关运算的条件,并对错误的条件产生报警。问题分析和建立模型:本题目主要是运用所学知识,用十字链表的方法去表示稀疏矩阵,并使之可以在两矩阵间进行相加。而后,若有错误,则对错误进行警报。框架搭建:1选择File|New菜单项,弹出New对话框,选择Files标签,选中C+ Source File项,在File编辑器中输入项目名称“十字链表表示稀疏矩阵实现加法”,在Location编辑框中输入项目所在目录,按下OK按钮即可。2在操作界面中输入,程序代码。(1) 结构体和共用体的定义#include#include#de
2、fine smax 45typedef int datatype;typedef struct lnode(2) 建立稀疏矩阵的函数,返回十字链表头指针int i,j; struct lnode *cptr,*rptr; union struct lnode *next; datatype v; uval;link;int flag=0;建立十字链表头结点head=(link *)malloc(sizeof(link);建立头结点循环链表for(i=1;ii=0;p-j=0; p-rptr=p;p-cptr=p; cpi=p; cpi-1-uval.next=p; cps-uval.next=
3、head; for(k=1;ki=i;p-j=j;p-uval.v=v; q=cpi; while(q-rptr!=cpi)&(q-rptr-jrptr; p-rptr=q-rptr; q-rptr=p; q=cpj; while(q-cptr!=cpj)&(q-cptr-icptr; p-cptr=q-cptr; q-cptr=p; return head;(4) 输出十字链表的函数link *p,*q; p=(link *)malloc(sizeof(link); p-i=i;p-j=j;p-uval.v=v; q=cpi; while(q-rptr!=cpi)&(q-rptr-jrptr
4、; p-rptr=q-rptr; q-rptr=p; q=cpj; while(q-cptr!=cpj)&(q-cptr-icptr ; p-cptr=q-cptr; q-cptr=p;(5)定义两个矩阵的非零元素,及两个矩阵的行和列数。然后输入非零元素。将两个用十字链表表示的稀疏矩阵显示出来。void print(link *a) link *p,*q,*r; int k,col,t,row; col=a-j; printf(矩阵为:n); p=a-uval.next; while(p!=a) q=p-rptr; if(q=a-cptr)break; r=p; while(q!=p) for
5、(k=1;kj-(r-j);k+) printf( 0); printf(%3d,q-uval.v); q=q-rptr; r=r-rptr; k=r-j; for(t=k;tuval.next; link *add(link *a,link *b) link *p,*q,*u,*v,*r,*cpsmax,*c; int s,i; if(a-i!=b-i|a-j!=b-j) flag=1;return NULL; (5) 建立相加矩阵c的表头环链c=(link *)malloc(sizeof(link); c-i=a-i;c-j=a-j; if(c-ic-j)s=c-i; else s=c-j
6、; cp0=c; for(i=1;ii=0;r-j=0; r-rptr=r;r-cptr=r; cpi=r; cpi-1-uval.next=r; cps-uval.next =c;考虑复杂问题,实现矩阵相加。p=a-uval.next;u=b-uval.next; while(p!=a&u!=b) q=p-rptr;v=u-rptr; if(q=p&v!=u) while(v!=u) insert(v-i,v-j,v-uval.v,cp);v=v-rptr; else if(v=u&q!=p) while(q!=p) insert(q-i,q-j,q-uval.v,cp);q=q-rptr;
7、 else if(q!=p&v!=u) while(q!=p&v!=u) if(q-jj) insert(q-i,q-j,q-uval.v,cp);q=q-rptr; else if(q-jv-j) insert(v-i,v-j,v-uval.v,cp);v=v-rptr; else if(q-uval.v+v-uval.v!=0)insert(q-i,q-j,(q-uval.v+v-uval.v),cp); q=q-rptr;v=v-rptr; if(q=p&v!=u) while(v!=u) insert(v-i,v-j,v-uval.v,cp);v=v-rptr; else if(v=u&q!=p) while(q!=p) insert(q-i,q-j,q-uval.v,cp);q=q-rptr; else; else ; p=p-uval.next;u=u-uval.next; return c;(6) 编写主函数void main() link *a,*b,*c; a=creatlinkmat();print(a); b=creatlinkmat();print(b); c=add(a,b); if(flag=1)printf(矩阵a、b不能相加!); else
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购房者信用记录查询与报告协议
- 2025公务员税务面试题及答案
- 介绍绿色技术
- 2025至2030中国聚芳砜行业项目调研及市场前景预测评估报告
- 2025年智能可穿戴设备在飞行员睡眠监测中的技术创新应用
- 2025年智能可穿戴设备睡眠监测技术革新应用展望
- 2025至2030中国汽车节油技术行业产业运行态势及投资规划深度研究报告
- 2025至2030中国废旧电器行业项目调研及市场前景预测评估报告
- 消防安全教育课件
- 江苏纺织:达成纺织行业股权置换与产业升级框架协议
- 平凉市崆峒区大寨乡柳沟村地热水矿产资源开发利用方案
- 推广普通话课件
- 隧道安全质量培训课件
- 六年级上册语文期末复习句子专项训练及答案
- 2019人教版高中英语选择性必修一UNIT 1 People of Achievement 单词表
- 电力变压器基础知识课件
- JJG 373-1997四球摩擦试验机
- GB/T 37785-2019烟气脱硫石膏
- GB/T 29343-2012木薯淀粉
- GB/T 16714-2007连续式粮食干燥机
- 班组长能力提升培训讲义课件
评论
0/150
提交评论