实验四 图的遍历算法设计与实现

一、实验名称:图的遍历算法设计与实现

二、实验目的:

1.掌握图的深度优先遍历的算法。

2.掌握图的广度优先遍历的算法。

3.实验章节:算法设计与分析 第四章

三、实验内容。实验问题和程序运行结果

第一部分 广度优先遍历算法

1. 分析Graph类,画出Graph类初始化以后的Graph对象的数据结构图。

2. 分析BFS函数,画出流程图。

3. 上述程序   int data[7][7]={{ 1,-1,-1,-1,-1,-1,-1},

{ 6, 3, 2,-1,-1,-1,-1},

{ 0,-1,-1,-1,-1,-1,-1},

{ 2, 0,-1,-1,-1,-1,-1},

{ 6, 5,-1,-1,-1,-1,-1},

{ 1,-1,-1,-1,-1,-1,-1},

{ 5, 3,-1,-1,-1,-1,-1}};

是对课本图4-1的输入,从0开始的广度优先的顺序是:

4. 若上图从节点4开始遍历的话,广度优先的顺序应该是什么。

5. 分析当Graph类对象,在输入以下图1的时候,从0开始的广度优先顺序是什么。自己设计data[][]数据进行输入,并给出该种输入情况下的遍历顺序。

6. 改写程序,输出parent数组值,并根据parent画出图1的广度优先深林。

第二部分 深度优先遍历算法

  1. 分析DFS程序,给出DFS的流程图:
  2. 对图4-1的DFS遍历顺序是:
  3. 当对图1进行DFS遍历的时候,遍历顺序是什么,根据parent值,推断深度优先深林是什么。
  4. 自己设计一个图,并通过程序计算深度遍历和广度遍历顺序。

四、实验小结和心得:

时间: 2024-10-10 06:11:03

实验四 图的遍历算法设计与实现的相关文章

数据结构实验报告-实验四 图的构造与遍历

实验四   图的构造与遍历   l  实验目的 1.图的的定义和遍历 (1)掌握图的邻接矩阵.邻接表的表示方法. (2)掌握建立图的邻接矩阵的算法. (3)掌握建立图的邻接表的算法. (4)加深对图的理解,逐步培养解决实际问题的能力. l  实验内容 1.图的定义和遍历 (一)基础题 1.编写图基本操作函数: (1)CreateALGraph(ALGraph &G) 建立无向图的邻接表表示: (2)LocateVex(ALGraph &G,char v)图查找信息: (3)DFSTrave

2017-2018-1 20162330 实验四 图的实现与应用

课程名称:<程序设计与数据结构> 学生班级:1623班 学生姓名:刘伟康 学生学号:20162330 实验时间:2017年11月20日-2017年11月24日 实验名称:图的实现与应用 指导老师:娄嘉鹏.王志强老师 目录 实验要求 实验步骤及代码实现 代码托管汇总 图的实现与应用-1:用邻接矩阵实现无向图 图的实现与应用-2:用十字链表实现有向图 图的实现与应用-3:实现PP19.9 测试过程及遇到的问题 1. 第一个实验无向图的边输入错误 分析总结及PSP时间统计 参考资料 实验要求: 实验

实验四 图的实现和应用 实验报告 20162305

实验四 图的实现和应用 实验报告 20162305 实验一 邻接矩阵实现无向图 实验要求 用邻接矩阵实现无向图(边和顶点都要保存),实现在包含添加和删除结点的方法,添加和删除边的方法,size(),isEmpty(),广度优先迭代器,深度优先迭代器.给出伪代码,产品代码,测试代码(不少于5条测试) 实验过程 用邻接矩阵表示无向图,首先我们先明确什么是邻接矩阵.邻接矩阵就是用矩阵的方式来表示不同结点之间的关系,对于无向图来说,如果结点(i,j)之间有联系,则在矩阵中(i,j)所对应的的点的值为1,

20162304 2017-2018-1 实验四-图的实现与应用

实验四-图的实现与应用 实验四 图的实现与应用-1 试验内容 用邻接矩阵实现无向图(边和顶点都要保存),实现在包含添加和删除结点的方法,添加和删除边的方法,size(),isEmpty(),广度优先迭代器,深度优先迭代器 给出伪代码,产品代码,测试代码(不少于5条测试) 实验结果 要想用邻接矩阵实现图,首先需要使用一个一维数组存放顶点,一个二维数组存放边: 然后清楚两个顶点之间的关系如何表示,用邻接矩阵表示出来是什么样的: 其中值得注意的是对角线上的应该是0,因为自己和自己是没有路径的. 广度优

20162327WJH实验四——图的实现与应用

20162327WJH实验四--图的实现与应用 实 验 报 告 课程:程序设计与数据结构 班级: 1623 姓名: 王旌含 学号:20162327 成绩: 指导教师:娄嘉鹏 王志强 实验日期:11月20日 实验密级: 非密级 预习程度: 已预习 实验时间:15:25-17:15 必修/选修: 必修 实验序号: cs_23 实验内容 实验一 1.实验内容 用邻接矩阵实现无向图(边和顶点都要保存),实现在包含添加和删除结点的方法,添加和删除边的方法,size(),isEmpty(),广度优先迭代器,

20162313 苑洪铭 实验四 图的实现与应用

20162313 苑洪铭 实验四 图的实现与应用 实验1 要求 用邻接矩阵实现无向图(边和顶点都要保存),实现在包含添加和删除结点的方法,添加和删除边的方法,size(),isEmpty(),广度优先迭代器,深度优先迭代器 给出伪代码,产品代码,测试代码(不少于5条测试) 内容 邻接矩阵(Adjacency Matrix):是表示顶点之间相邻关系的矩阵.设G=(V,E)是一个图,其中V={v1,v2,-,vn}. 对无向图而言,邻接矩阵一定是对称的,而且主对角线一定为零,副对角线不一定为0. 总

图的遍历算法:DFS、BFS

在图的基本算法中,最初需要接触的就是图的遍历算法,根据访问节点的顺序,可分为深度优先搜索(DFS)和广度优先搜索(BFS). DFS(深度优先搜索)算法 Depth-First-Search 深度优先算法,是一种用于遍历或搜索树或图的算法.沿着树的深度遍历树的节点,尽可能深的搜索树的分支. 当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点. 这一过程一直进行到已发现从源节点可达的所有节点为止. 如果还存在未被发现的节点, 则选择其中一个作为源节点并重复以上过程,整个进程反复

【图】实验题二:实现图的遍历算法

递归深度优先遍历算法 1 #include<stdio.h> 2 #include<malloc.h> 3 #define MAXV 100 4 #define INF 32767 5 typedef struct ANode 6 { 7 int adjvex; 8 int weight; 9 struct ANode *nextarc; 10 } ArcNode; 11 12 typedef struct 13 { 14 int count; 15 ArcNode *firsta

图和图的遍历算法

1.存储结构(邻接链表) 1.1每个顶点用VexNode类表示,每条边用ArcNode表示 1.2所有顶点用数组VexNode adjlist[]表示,所有邻接顶点用链表表示 2.遍历算法 2.1深度优先遍历DFS 用递归实现,从V0开始,访问V0即邻接顶点V1,访问V1及其邻接顶点... 2.2广度优先遍历 用队列实现,从V0开始,访问V0,入队,出队,访问V0所有临界点,入队...直到队列为空 Graph.java 1 package com.gxf.graph; 2 3 /** 4 * 定