“图的基本操作”的设计与实现

本文由用户“killerxb”分享发布 更新时间:2021-07-06 06:38:10 举报文档

以下为《“图的基本操作”的设计与实现》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

“图的基本操作”的设计与实现

实验名:



班级:



学号:



姓名:



日期:









设计要求

问题描述

自选存储结构,实现对图的操作。

需求分析

自选存储结构,输入含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请点击下方选择您需要的文档下载。

  1. 数学:2.2.1《椭圆的标准方程》PPT课件(新人教A版选修2-1)
  2. 《角的初步认识》参考课件
  3. 打印机废墨清零方法
  4. 数据结构课程实验报告
  5. 软件(脱机联网)安装操作说明书(V2.1)
  6. 随机图材料归纳
  7. 动态路由选择算法实验报告4模板
  8. 二年级数学知识点(填空)
  9. 角的认识——教学思路
  10. 二次函数知识点总结
  11. 数据结构问题总结
  12. 六数下(圆锥)教案
  13. 《数据结构(c语言版)》知识点概括
  14. 高中数学 教学课件
  15. 角的初步认识复习课件
  16. 3.6整理与复习 教案

以上为《“图的基本操作”的设计与实现》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览