实验四:图的遍历
题目:图及其应用——图的遍历
班级: 姓名: 学号: 完成日期:
一.需求分析
1.问题描述:很多涉及图上操作的算法都是以图的遍历操作为基础的。试写一个程序,演示在连通的无向图上访问全部结点的操作。
2.基本要求:以邻接表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列和相应生成树的边集。
3.测试数据:教科书图7.33。暂时忽略里程,起点为北京。
4.实现提示:设图的结点不超过30个,每个结点用一个编号表示(如果一个图有n个结点,则它们的编号分别为1,2,…,n)。通过输入图的全部边输入一个图,每个边为一个数对,可以对边的输入顺序作出某种限制,注意,生成树的边是有向边,端点顺序不能颠倒。
5.选作内容:
(1).借助于栈类型(自己定义和实现),用非递归算法实现深度优先遍历。
(2).以邻接表为存储结构,建立深度优先生成树和广度优先生成树,再按凹入表或树形打印生成树。
二.概要设计
1.为实现上述功能,需要有一个图的抽象数据类型。该抽象数据类型的定义为:
ADT Graph
{
数据对象V:V是具有相同特性的数据元素的集合,称为顶点集。
数据关系R:
R={VR}
VR={v,w | v,wv且P(v,w),v,w表示从v到w得弧,谓词P(v,w)定义了弧v,w的意义或信息}
} ADT Gr
原创力文档

文档评论(0)