采用十字链表表示稀疏矩阵,并实现矩阵的加法运算_第1页
采用十字链表表示稀疏矩阵,并实现矩阵的加法运算_第2页
采用十字链表表示稀疏矩阵,并实现矩阵的加法运算_第3页
采用十字链表表示稀疏矩阵,并实现矩阵的加法运算_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计课程设计 所抽题目 所抽题目 采用十字链表表示稀疏矩阵 并实现矩阵的加法运 算 要求 要检查有关运算的条件 并对错误的条件产生 报警 问题分析和建立模型 问题分析和建立模型 本题目主要是运用所学知识 用十字 链表的方法去表示稀疏矩阵 并使之可以在两矩阵间进行相加 而 后 若有错误 则对错误进行警报 框架搭建 框架搭建 1选择 File New 菜单项 弹出 New 对话框 选择 Files 标签 选中 C Source File 项 在 File 编辑器中输入项目名称 十字链表表示 稀疏矩阵实现加法 在 Location 编辑框中输入项目所在目录 按下 OK 按钮即可 2在操作界面中输入 程序代码 1 结构体和共用体的定义 include include define smax 45 typedef 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 cp i p cp i 1 uval next p cp s uval next head for k 1 ki i p j j p uval v v q cp i while q rptr cp i p rptr q rptr q rptr p q cp j while q cptr cp j 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 cp i while q rptr cp i p rptr q rptr q rptr p q cp j while q cptr cp j 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 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 cp smax 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 i c j s c i else s c j cp 0 c for i 1 ii 0 r j 0 r rptr r r cptr r cp i r cp i 1 uval next r cp s uval next c 考虑复杂问题 实现矩阵相加 p a uval next u b uval next while p av u rptr if q pv v rptr else if v uq q rptr else if q pq q rptr else if q j v 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 pv v rptr else if v uq 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 printf 和矩阵 c 为 n print c 实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论