




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机科学与工程学院计算机科学与工程学院 算法与数据结构算法与数据结构 实验报告实验报告 八八 专业班级 2015 级计算机科学与 技术 1 实验地点403 机房 学生学号 1505120488 指导教师蔡琼 学生姓名杜成昊实验时间 2017 05 27 实验项目图的应用 实验类别基础性 设计性 综合性 其它 实验目的 及要求 1 熟练掌握图的基本存储方法 2 熟练掌握图的深度优先和广度优先搜索方法 3 掌握 AOV 网和拓扑排序算法 4 掌握 AOE 网和关键路径 成 绩 评 定 表 类 别评 分 标 准分值得分合 计 上机表现 积极出勤 遵守纪律 按要求完成设计任务 3030 分 程序与报告 程序代码规范 功能正确 报告详实完整 体现收获 7070 分 说明 说明 评阅教师 评阅教师 蔡琼蔡琼 日日 期 期 20172017 年年 6 6 月月 3 3 日日 计算机科学与工程学院 算法与数据结构 实验报告2 实 验 内 容 实验内容 拓扑排序 任意给定一个有向图 设计一个算法 对它进行拓扑排序 拓扑排序算法 思想 a 在有向图中任选一个没有前趋的顶点输出 b 从图中删除该顶点和所 有以它为尾的弧 c 重复上述 a b 直到全部顶点都已输出 此时 顶点输出 序列即为一个拓朴有序序列 或者直到图中没有无前趋的顶点为止 此情形表 明有向图中存在环 实验说明 拓扑排序算法伪代码如下 源代码如下 源代码如下 include include define STACK INIT SIZE 100 define STACKINCREMENT 10 define MAX 20 typedef int VertexType typedef struct ArcNode 表结点 int adjvex 弧所指向的顶点的位置 struct ArcNode nextarc ArcNode typedef struct VNode 头结点 VertexType data 顶点信息 ArcNode firstarc 指向第一条依附该弧的顶点指针 VNode AdjList typedef struct AdjList vertices int vexnum 1 栈 S 初始化 累加器 count 初始化 2 扫描顶点表 将没有前驱 即入度为 0 的顶点压栈 3 当栈 S 非空时循环 3 1 vj 退出栈顶元素 输出 vj 累加器加 1 3 2 将顶点 vj的各个邻接点的入度减 1 3 3 将新的入度为 0 的顶点入栈 4 if countbase int malloc STACK INIT SIZE sizeof int if s base exit 0 s top s base s stacksize STACK INIT SIZE void Push SqStack s int e if s top s base s stacksize s base int realloc s base STACK INIT SIZE STACKINCREMENT sizeof int if s base exit 0 s top s base s stacksize s stacksize STACKINCREMENT s top e void Pop SqStack s int e if s top s base exit 0 e s top void GetTop SqStack s int e if s top s base exit 0 e s top 1 int StackEmpty SqStack s if s base s top return 1 else return 0 void CreatAjacentMatrix int array int n 创建邻接矩矩阵 n 行 n 列 计算机科学与工程学院 算法与数据结构 实验报告4 int a int i j flag 0 printf 请输入一个 d 行 d 列的关于图的邻接矩阵 n n n for i 0 i n i for j 0 j n j scanf d array i n j a void PrintAjacentMatrix int array int n int i j for i 0 i n i for j 0 jvexnum n 初始化顶点数 G vertices VNode malloc n 1 sizeof VNode 头结点数组 开 辟 n 1 长度的数组空间 for i 1 ivertices i data i G vertices i firstarc NULL for i 0 i n i for j 0 jadjvex j 1 p nextarc G vertices i 1 firstarc G vertices i 1 firstarc p 计算机科学与工程学院 算法与数据结构 实验报告5 void FindInDegree ALGraph G int indegree 对顶点求入度 int i j ArcNode p for i 1 i G vexnum i indegree i 0 indispensable for i 1 i G vexnum i 对每个结点跑完整个邻接表 for j 1 jnextarc if G vertices i data p adjvex indegree i int TopologicalSort ALGraph G 拓扑排序算法 有向图采用邻接表存储结构 若 G 无回路 则 flag 0 输出 G 的顶点的一个拓扑序列 否则给出该有向 图有回路的提示 int i count k int indegree int malloc G vexnum 1 sizeof int SqStack S ArcNode p FindInDegree G indegree 对顶点求入度 indegree G vexnum initialStack 为避免重复检测入度为 0 的顶点 可另设一栈暂存放 所有入度为 0 的顶点 for i 1 inextarc k p adjvex 表结点的数据域 即对 i 号顶点的每个邻接点 的入度减 1 if indegree k 若入度减少为 0 则入栈 Push 计算机科学与工程学院 算法与数据结构 实验报告6 if count G vexnum 该有向图有回路 return 0 else return 1 void main int n int A ALGraph G printf 请输入你想创建的邻接矩矩阵的行列数 即顶点数 n scanf d A int malloc n n sizeof int CreatAjacentMatrix A n printf 输出该图的邻接矩阵 A n PrintAjacentMatri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康防预知识培训总结课件
- 四川省绵阳市游仙区2025-2026学年八年级上学期开学历史试题(含答案)
- 俄国农奴制改革
- 伤寒护理课件
- 2025-2026学年辽宁省铁岭市高三物理第一学期期末考试试题
- 广东省汕尾市2025年物理高三上期末综合测试模拟试题
- 安徽省安庆市2025-2026学年物理高三上期末联考试题
- 金融总工委管理办法
- 企业疫情安全培训课程课件
- 淘宝代收评价管理办法
- (高清版)DZT 0079-2015 固体矿产勘查地质资料综合整理综合研究技术要求
- 钝感力读后感课件
- (完整word版)软件投标书模板
- 甲醇制氢生产装置设计
- 纳思达在线测评试题
- PHQ-9抑郁评分量表
- 教师工作培训手册
- 《公差配合与测量技术》课件
- 激光束传输与变换-第九讲课件
- 各地招聘辅警考试真题
- 时空大数据讲义课件
评论
0/150
提交评论