




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
韶 关 学 院 学 生 实 验 报 告 册实验课程名称:数据结构与算法实验项目名称:实验三 稀疏矩阵和广义表子系统实验类型(打 ):(基础 、综合 、设计 )院 系:计算机科学学院 专 业:计算机科学技术姓 名:* 学 号:*指导老师:陈正铭 韶关学院教务处编制一、实验预习报告内容 预习日期:2011年 9 月 18 日【实验目的】(1) 掌握稀疏矩阵三元组表的存储方法。 (2)掌握稀疏矩阵三元组表创建、显示、转置和查找等算法。 (3)掌握广义表的存储方法。 (4)掌握广义表的新建、显示和查找等算法。 (5)掌握稀疏矩阵三元组表和广义表的算法分析方法。【实验内容】(1)编写稀疏矩阵三元组表的存储程序; (2)编写疏矩阵三元组表创建、显示、转置和查找程序; (3)编写建立广义表的程序; (4)编写广义表的显示和查找程序; (5)设计选择式菜单,其一级菜单形式如下:稀疏矩阵和广义表子系统* 1-稀 疏 矩 阵 * 2-广 义 表 * 0-退 出 * 请输入菜单号(0-2): 稀疏矩阵二级菜单形式如下: 稀疏矩阵的三元组存储* 1-新 建 * 2-转 置 * 3-查 找 * 4-显 示 * 0-返 回 * 请输入菜单号(0-4): 广义表二级菜单形式如下: 广 义 表* 1-新 建 * 2-查 找 * 3-显 示 * 0-返 回 * 请输入菜单号(0-3): 三、实验报告内容 2011年 9 月 21 日【实验程序主要代码】:#include#include#include#include#define SMAX 100 / 三元组非零元素的最大个数typedef struct SPNode / 定义三元组int i,j,v; / 三元组非零元素的行、列和值;typedef struct sparmatrix / 定义稀疏矩阵int rows,cols,terms; / 稀疏矩阵行、列和非零元素的个数SPNode dataSMAX; / 三元组表;typedef struct linknode / 定义广义表int tag; / 区分原子项或子表的标志位linknode *link; / 存放下一个元素的地址union data_sublistchar data; / 存放原子的值linknode *sublist; / 存放子表的指针node;sparmatrix CreateSparmatrix() / 创建稀疏矩阵 sparmatrix A; printf(ntt请输入稀疏矩阵的行数,列数和非零元个数(用逗号隔开): ); scanf(%d,%d,%d,&A.rows,&A.cols,&A.terms); for(int n=0;n=A.terms-1;n+)printf(ntt输入非零元值(格式: 行号,列号,值): );scanf(%d,%d,%d,&A.datan.i,&A.datan.j,&A.datan.v);return A;sparmatrix Trans(sparmatrix A) / 转置稀疏矩阵sparmatrix B;B.rows=A.cols; B.cols=A.rows; B.terms=A.terms;for(int n=0;n=A.terms-1;n+)B.datan.i=A.datan.j;B.datan.j=A.datan.i;B.datan.v=A.datan.v;return B;void ShowSparmatrix(sparmatrix A) / 显示稀疏矩阵 int k; printf(ntt); for(int x=0;x=A.rows-1;x+) for(int y=0;y=A.cols-1;y+)k=0;for(int n=0;n=A.terms-1;n+) if(A.datan.i=x)&(A.datan.j=y)printf(%8d,A.datan.v);k=1;if(k=0)printf(%8d,k); printf(ntt); void SearchSparmatrix(sparmatrix A,int s) / 查找稀疏矩阵中非零元素 int n,t; t=A.terms; for(n=0;ntag=0;gh-node.data=*s;gh-link=NULL;elsegh=new linknode;gh-tag=1;p=gh;s+;strncpy(subs,s,len-2);subslen-2=0;doDisastr(subs,hstr);r=CreateGL(hstr);p-node.sublist=r;q=p;len=strlen(subs);if (len0)p=new linknode;p-tag=1;q-link=p;while (len0);q-link=NULL;return gh;void Showvl(linknode *gnode) / 显示广义表linknode *p,*q; if(gnode)dop=gnode-node.sublist;q=gnode-link;while(q&p&!p-tag)printf(%c,p-node.data);p=q-node.sublist;q=q-link;if(p&!p-tag)printf(%c,p-node.data); break; elseif(!p)printf();else Showvl(p);if(q)printf(,);gnode=q;while(gnode);printf(b); / 输出格式中的b表示退格int Search(linknode *gnode,char x) / 查找广义表中的元素int find=0;if(gnode!=NULL)if(!gnode-tag & gnode-node.data=x)return 1;else if(gnode-tag)find=Search(gnode-node.sublist,x);if(find)return 1;else return Search(gnode-link,x);else return 0;void vastlist() / 广义表 int ch=1,choice; char x; char strSMAX ; linknode *vastlist=NULL; while(ch) printf(n);printf(ntt 广 义 表n );printf(ntt*);printf(ntt* 1-新 建 *);printf(ntt* 2-查 找 *);printf(ntt* 3-显 示 *);printf(ntt* 0-返 回 *);printf(ntt*);printf(nntt 请输入菜单号(0-3): );scanf(%u,&choice);switch(choice) case 1:printf(ntt新建广义表: );scanf(%s,&str);vastlist=CreateGL(str);break; case 2:if(vastlist=NULL)printf(ntt广义表为空! n);elseprintf(ntt输入要查找的广义表中的元素: );scanf(%s,&x);if(Search(vastlist,x)=1)printf(ntt该元素在广义表中存在! n);elseprintf(ntt该元素在广义表中不存在! n);break; case 3:if(vastlist=NULL)printf(ntt广义表为空! n);elseprintf(ntt);printf();Showvl(vastlist);break; case 0:ch=0;break;if(choice=1|choice=2|choice=3)printf(ntt);system(pause);system(cls);else system(cls); void main() int ch=1,choice; while(ch) printf(n);printf(ntt 稀疏矩阵和广义表子系统n );printf(ntt*);printf(ntt* 1-稀 疏 矩 阵 *);printf(ntt* 2-广 义 表 *);printf(ntt* 0-退 出 *);printf(ntt*);printf(nntt 请输入菜单号(0-2): );scanf(%u,&choice);switch(choice) case 1:system(cls);sparmatrix(); break; case 2:syste
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中考化学试题分类汇编:科学探究题(第2期)解析版
- 1 丰富的数据世界教学设计-2025-2026学年初中数学北师大版2024七年级上册-北师大版2024
- 1秋天 教学设计-2024-2025学年语文一年级上册(统编版)
- 2025年天津市河西区中考一模物理试题(解析版)
- 小学语文一遍过单元测试卷(3篇)
- 第一章有理数-单元测试卷-2025-2026学年人教版数学
- 2025年全国汽车驾驶员(技师)职业技能考试题库(含答案)
- 本册综合教学设计-2025-2026学年中职语文拓展模块语文版
- 2025年高考数学二模试题分类汇编(辽宁专用)立体几何与空间向量(解析版)
- 2025年食品企业生产工安全生产知识考试试题及答案
- 珍珠培训课件
- 高二上学期数学开学第一课《新学期新期望》课件
- 数字经济背景下企业商业模式创新
- 高中语文人教版高一必修《李白将进酒》教育教学课件
- 设备购销合同详细范本
- 加装电梯补偿协议书范文模板
- 远古帝王世系表
- DZ∕T 0211-2020 矿产地质勘查规范 重晶石、毒重石、萤石、硼(正式版)
- 国家基层糖尿病神经病变诊治指南(2024版)
- 人体常见病 知到智慧树网课答案
- 如何正确使用和佩戴劳动防护用品培训课件
评论
0/150
提交评论