以下为《“图的基本操作”的设计与实现》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
“图的基本操作”的设计与实现
实验名:
班级:
学号:
姓名:
日期:
设计要求
问题描述
自选存储结构,实现对图的操作。
需求分析
自选存储结构,输入含n个顶点(用字符表示顶点)和e条边的图G;
求每个顶点的度,输出结果;
指定任意顶点x为初始顶点,对图G作DFS遍历,输出DFS顶点序列
指定任意顶点x为初始顶点,对图G作BFS遍历,输出BFS顶点序列
输入顶点x,查找图G:若存在含x的顶点,则删除该结点及与之相关联的边,并作DFS遍历(执行操作3);否则输出信息“无x”;
判断图G是否是连通图,输出信息“YES”/“NO”;
如果选用的存储结构是邻接矩阵,则用邻接矩阵的信息生成图G的邻接表,即复制图G, 然后再执行操作(2);反之亦然。
概要设计
存储结构设计
本系统主要采用链表结构类型来表示存储在“图”中的信息。
系统功能设计
本系统设置5个子功能:
初始化图
计算并显示图中每个结点的度数
对指结.定点进行深度优先遍历
对指结.定点进行广度优先遍历
删除指结.定点,并重新进行深度优先遍历
判断是否为连通图
将邻接矩阵转换为邻接表
模块设计
系统子程序及功能设计
(1)void Graph::ini() //初始化
(2)void Graph::degree(char c) //计算结点的度
(3)void Graph::dfs(char c,bool b) //深度优先遍历
(4)void Graph::bfs(char c)//广度优先遍历
(5)void Graph::del(char ch)//删除一个结点
(6)bool Graph::isConnected()//判断是否为连通图
(7)void Graph::change()//邻接表转换为邻接矩阵
(8)void lingjie(char)//找到结点的邻接点
函数主要调用关系图
详细设计
1、数据类型定义
class Graph
{
public://外部都可以访问
int n;
char dot[10];
int a[10][10];
int visited[10];
void ini();
void degree(char);
void del(char);
void dfs(char,bool);
void lingjie(char);
void bfs(char);
bool isConnected();
void change();
~Graph();
};
系统主要子程序详细设
初始化:
void Graph::ini(){
memset(visited,0,sizeof(visited));//初始化 都为0
memset(a,0,sizeof(a));
int i,j,m,p,q;
char x,y,z;
printf("请输入图中点的个数:");
cin>>n;
printf("请输入图的点集,以空格分开:");
for(j=0;j>d 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 i请点击下方选择您需要的文档下载。
以上为《“图的基本操作”的设计与实现》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。