C++数据结构与算法笔记之实验十 图的存储结构与遍历

实验十 图的存储结构与遍历
一、实验目的
1.掌握图的邻接矩阵表示方法;
2.理解基于邻接矩阵的深度优先、广度优先遍历方法的实现;
3.掌握图的邻接表表示方法;
4.理解基于邻接表的深度优先、广度优先遍历方法的实现。
二、实验环境
Windows 7以上版本的操作系统,Visual Studio 2019以上编程环境。

三、实验内容
1.画出以下无向图的邻接矩阵和邻接表,并对应邻接矩阵或邻接表列出该图的深度优先遍历序列和广度优先遍历序列。(选定A为起点进行遍历)
在这里插入图片描述

深度优先遍历序列:每次都是输出当前顶点的 下一步未访问的邻接点(一个点一个点输出)
广度优先遍历序列:每次都是输出当前顶点的 所有未访问的邻接点(一串一串输出)

邻接矩阵如下:
在这里插入图片描述

邻接表如下:
在这里插入图片描述

以A点为起点的深度遍历:A->C->B->G->D->E->F
以A点为起点的广度遍历:A->C->G->B->D->E->F

2.画出以下有向图的邻接矩阵和邻接表,并对应邻接矩阵或邻接表列出该图的深度优先遍历序列和广度优先遍历序列。(选定A为起点进行遍历)
在这里插入图片描述

邻接矩阵如下:
在这里插入图片描述

邻接表如下:
在这里插入图片描述
以A点为起点的深度遍历:A->C->B->G->D->E->F
以A点为起点的广度遍历:A->C->G->B->D->E->F

3.把练习1的无向图的邻接矩阵代入课件附带的 graph 项目中main.cpp文件的m[MAXV][MAXV] 二维数组,验证无向图深度优先遍历的结果。
在这里插入图片描述

4.把练习2的有向图的邻接矩阵代入课件附带的 graph 项目中main.cpp文件的m[MAXV][MAXV] 二维数组,验证有向图深度优先遍历的结果。
在这里插入图片描述

思考题:
1.请参考课本P261页的MatToList函数,把用户输入的邻接矩阵转化为邻接表。然后参考课本P265页的DFS函数,实现对使用邻接表存储的图的深度优先遍历。

2.请参考课本P266页的BFS函数,实现图的广度优先遍历。(可分别使用邻接矩阵或邻接表进行实现)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值