![数据结构矩阵实验报告1_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-8/8/5a88109f-daee-4dc2-a7a0-7d856ca526a6/5a88109f-daee-4dc2-a7a0-7d856ca526a61.gif)
![数据结构矩阵实验报告1_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-8/8/5a88109f-daee-4dc2-a7a0-7d856ca526a6/5a88109f-daee-4dc2-a7a0-7d856ca526a62.gif)
![数据结构矩阵实验报告1_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-8/8/5a88109f-daee-4dc2-a7a0-7d856ca526a6/5a88109f-daee-4dc2-a7a0-7d856ca526a63.gif)
![数据结构矩阵实验报告1_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-8/8/5a88109f-daee-4dc2-a7a0-7d856ca526a6/5a88109f-daee-4dc2-a7a0-7d856ca526a64.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构矩阵实验报告一、实验目的和要求(1)掌握各种特殊矩阵如对称矩阵、上下三角矩阵和对角矩阵的压缩存储方法。(2)掌握稀疏矩阵的各种存储结构以及基本运算实现算法。(3)掌握广义表的递归特性、存储结构以及基本运算实现算法。二、实验环境、内容和方法实验内容:打开visual c+6.0并输入实验指导书上的程序,并进行调试和运行。自行尝试编写第六个实验。实验方法:(一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。(二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。(三)根据实验内容,编译程序。实验环境:windows xp visual c+6.0
2、三、实验过程描述实验以下是一个5*5阶的螺旋方阵。设计一个程序输出该形式的n*n阶方阵。1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9一、打开visual c+6.0并输入如下程序#include#define maxlen 10void fun(int amaxlenmaxlen,int n)int i,j,k=0,m;if (n%2=0)m=n/2;else m=n/2+1; for (i=0;ifor (j=i;jk+;aij=k;for (j=i+1;jk+;ajn-i-1=k;for (j=n-i-2;j=i
3、;j-)k+;an-i-1j=k;for (j=n-i-2;j=i+1;j-)k+;aji=k;void main()int n,i,j;int amaxlenmaxlen;printf(n);printf(输入n(nscanf(%d,&n);fun(a,n);printf(%d阶数字方阵如下:n,n);for (i=0;ifor (j=0;jprintf(%4d,aij);printf(n);printf(n);二、,编译并连接此程序,如图 三、运行此程序,如图实验假设n*n的稀疏矩阵a采用三元组表示,设计一个程序实现如下功能:(1)生成如下两个稀疏矩阵的三元组a和b:a:1 0 3 0 b
4、: 3 0 0 00 1 0 0 0 4 0 00 0 1 0 0 0 1 00 0 1 1 0 0 0 2(2)输出a转置矩阵的三元组(3)输出a+b的三元组 (4) 输出a*b的三元组 一、输入如图所示程序#include#define n 4typedef int elemtype;#define maxsize 100typedef struct int r;int c;elemtype d; tupnode;typedef struct int rows;int cols;int nums;tupnode datamaxsize; tsmatrix;void creatmat(tsm
5、atrix &t,elemtype ann)int i,j;t.rows=n;t.cols=n;t.nums=0;for (i=0;ifor (j=0;jif (aij!=0)t.datat.nums.r=i;t.datat.nums.c=j;t.datat.nums.d=aij;t.nums+;void dispmat(tsmatrix t)int i;if (t.numsreturn;printf(t%dt%dt%dn,t.rows,t.cols,t.nums);printf(t-n);for (i=0;iprintf(t%dt%dt%dn,t.datai.r,t.datai.c,t.da
6、tai.d); void tranmat(tsmatrix t,tsmatrix &tb) int p,q=0,v; tb.rows=t.cols;tb.cols=t.rows;tb.nums=t.nums;if (t.nums!=0)for (v=0;vfor (p=0;pif (t.datap.c=v)tb.dataq.r=t.datap.c;tb.dataq.c=t.datap.r;tb.dataq.d=t.datap.d;q+;int matadd(tsmatrix a,tsmatrix b,tsmatrix &c) int i=0,j=0,k=0;elemtype v;if (a.r
7、ows!=b.rows | a.cols!=b.cols)return 0;c.rows=a.rows;c.cols=a.cols;while (iif (a.datai.r=b.dataj.r)if(a.datai.cc.datak.r=a.datai.r;c.datak.c=a.datai.c;c.datak.d=a.datai.d;k+;i+;else if (a.datai.cb.dataj.c)c.datak.r=b.dataj.r;c.datak.c=b.dataj.c;c.datak.d=b.dataj.d;k+;j+;elsev=a.datai.d+b.dataj.d;if (
8、v!=0) c.datak.r=a.datai.r;c.datak.c=a.datai.c;c.datak.d=v;k+;i+;j+;else if (a.datai.rc.datak.r=a.datai.r;c.datak.c=a.datai.c;c.datak.d=a.datai.d;k+;i+;elsec.datak.r=b.dataj.r;c.datak.c=b.dataj.c;c.datak.d=b.dataj.d;k+;j+;c.nums=k;return 1;int value(tsmatrix c,int i,int j)int k=0;while (kif (kreturn(
9、c.datak.d);elsereturn(0);int matmul(tsmatrix a,tsmatrix b,tsmatrix &c)int i,j,k,p=0;elemtype s;if (a.cols!=b.rows)return 0;for (i=0;i for (j=0;j s=0;for (k=0;ks=s+value(a,i,k)*value(b,k,j);if (s!=0)c.datap.r=i;c.datap.c=j;c.datap.d=s;p+;c.rows=a.rows;c.cols=b.cols;c.nums=p;return 1;void main()elemty
10、pe a1nn=1,0,3,0,0,1,0,0,0,0,1,0,0,0,1,1;elemtype b1nn=3,0,0,0,0,4,0,0,0,0,1,0,0,0,0,2;tsmatrix a,b,c;creatmat(a,a1);creatmat(b,b1);printf(a的三元组:n);dispmat(a);printf(b的三元组:n);dispmat(b);printf(a转置为cn);tranmat(a,c);printf(c的三元组:n);dispmat(c);printf(c=a+bn);matadd(a,b,c);printf(c的三元组:n);dispmat(c);prin
11、tf(c=a*bn);matmul(a,b,c);printf(c的三元组:n);dispmat(c);二、程序运行结果如图 实验编写一个程序实现广义表的各种运算,并在此基本上设计一个程序完成如下功能:(1)建立广义表g=“(b,(b,a,(#),d),(a,b),c,(#)”的链式存储结构;(2)输出广义表g的长度;(3)输出广义表g的深度;(4)输出广义表g的最大原子;一、输入如图所示程序#include#includetypedef char elemtype;typedef struct lnode int tag;unionelemtype data;struct lnode *su
12、blist;val;struct lnode *link; glnode; glnode *creatgl(char *&s) glnode *h;char ch;ch=*s+;if (ch!=0)h=(glnode *)malloc(sizeof(glnode);if (ch=()h-tag=1;h-val.sublist=creatgl(s);else if (ch=)h=null;elseh-tag=0;h-val.data=ch;else h=null;ch=*s+;if (h!=null)if (ch=,)h-link=creatgl(s);elseh-link=null;retur
13、n h;int gllength(glnode *g)int n=0;g=g-val.sublist;while (g!=null)n+;g=g-link;return n;int gldepth(glnode *g)int max=0,dep; if (g-tag=0) return 0;g=g-val.sublist;if (g=null)return 1;while (g!=null)if (g-tag=1)dep=gldepth(g);if (depmax) max=dep;g=g-link;return(max+1);void dispgl(glnode *g)if (g!=null)if (g-tag=1)printf();if (g-val.sublist=null) printf();else dispgl(g-val.sublist);else printf(%c, g-val.data);if (g-tag=1) printf();if (g-link!=null)print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度智慧城市建设担保协议3篇
- 运动队训练中的科技装备与智能化管理
- 2025版商业综合体物业商铺装修管理及维护服务协议书3篇
- 网络信息搜索与评价能力的培养方案设计
- 小学数学课堂的科学实验教学探讨
- 2025年粤教新版选修6历史下册阶段测试试卷含答案
- 二零二五年度离婚协议中夫妻共同财产分割及子女抚养协议范本6篇
- 2025年苏人新版必修1历史下册月考试卷含答案
- 2025版无息医疗健康贷款合同书示例3篇
- 2025年浙教版选择性必修三语文下册阶段测试试卷
- 2024年09月2024兴业银行总行岗测评笔试历年参考题库附带答案详解
- 山东省烟台市招远市2024-2025学年九年级上学期期末考试英语(笔试)试题(含答案)
- 骆驼祥子读书笔记一至二十四章
- 2025年方大萍安钢铁招聘笔试参考题库含答案解析
- 2024年医师定期考核临床类考试题库及答案(共500题)
- 2025年电力工程施工企业发展战略和经营计划
- 2022年公务员多省联考《申论》真题(安徽C卷)及答案解析
- 大型活动保安培训
- 2024年大学本科课程教育心理学教案(全册完整版)
- 信息系统运维服务类合同6篇
- 江苏省七市2025届高三最后一卷物理试卷含解析
评论
0/150
提交评论