图的基本操作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

哈尔滨工业大学计算机科学与技术学院

实验报告

课程名称:数据结构

课程类型:必修

实验项目名称:第三次实验实验题目:图的基本操作

班级:10803102

学号:1080310225

姓名:陈虞付

一、实验目的

实现有向图、无向图的基本操作。

二、实验要求及实验环境

实验要求:实现有向图、无向图的基本操作(建立连接表,邻接矩阵,深度优先搜索,广度优先搜索等)。

实验环境: windows 平台、 code :: blocks 集成开发环境。

三、设计思想(本程序中的用到的所有数据类型的定义,主程序的流程图及各程序模块之间的调用关系)

1.逻辑设计

主程序的流程:定义邻接表 gl 、bool 型数组 visited[] 。程序开始时,先初始化邻接表,然后提示图是否有向,输入选择,调用 MainMenue()函数到主菜单的选择界面,根据输入的选择调用相应的函数、实现相应的逻辑功能。

2.物理设计

程序功能:以文件方式方式输入的无 / 有向图,实现无 / 有向图的邻接表、邻接矩阵求解及对图的深度优先遍历、广度优先遍历操作。

输入:将要求解的无 / 有向图按规则输入对应的文件

输出:通过主菜单的选择,按需实现对图的各种操作,显示结果并保存到相应的文件中。

源程序说明:

头文件: graphics.h

函数实现: graphics.cpp

主函数: main.cpp

存放的文件说明:

无向图: graphics1.txt

存放格式为第一行存放图的顶点数有向图: graphics2.txt 存放格式为第一行存放图的顶点数

无向图邻接表: adjlist1.txt

有向图邻接表: adjlist2.txt

无向图邻接矩阵: adjmatrix1.txt 有向图邻接矩阵: adjmatrix2.txt 所有抽象数据类型的定义如下:

// 定义邻接表的边节点类型

struct EdgeNode n ,边数b ,下面每行存放两个相邻顶点:Vi,Vj n ,下面每行存放两个相邻顶点Vi-->Vj :Vi,Vj

int adjvex;

EdgeNode *next;

};

// 定义邻接表类型

typedef EdgeNode **ADJLIST;

各模块的具体实现程序是: Graphicscpp

各模块的的功能及参数说明: graphics.h 如下:

// 对图操作的主菜单

void MainMenue();

// 初始化邻接表

void InitialAdjList(ADJLIST &GL, int n);

// 以文件方式输入图

//bool InputGraphics();

// 建立图的邻接表

void CreatAdjList(ADJLIST &GL, int &n, int m); // 建立图的邻接矩阵

void CreatAdjMatrix(ADJLIST &GL, int &n, int m);

// 从初始点出发深度优先搜索由邻接表 GL 表示的图 void DFSAdjList(ADJLIST GL, bool *&visited, int i, int n);

//从初始点出发广度优先搜索由邻接表GL表示的图

void BFSAdjList(ADJLIST GL, bool *&visited, int i, int n);

四、测试结果

1、图是否有向的选择、主菜单界面:

2、建立邻接表的测试结果:

3、建立邻接矩阵的测试结果:

1

0 1

0 0

0 1

&

1 0

1 0

» 1

a

0 s

a

& 0

1

»

9

@

a

1

a

a

a

a

& 0

a a

a 0

» 0

» 0

U B

1 1

0 0

& 1

1 U

a a

a H

o 0

0 0

a 0

a a

o 0

» 0

9 3

a

a

9

9

9

1

8

1

&

&

a

9

8

@

»

a

1

9

a

& 0

a a

a 0

» 0

» 0

a 0

o 0

0 0

& 0

& U

a a

& H

& 0

0 0

a 1

a a

o 0

» 0

1 3

a

a

9

9

9

a

8

1

@

»

a

B

&

9

a

&

8

8

8 _

[阵已保存到孔町mat v

i_xl

a

9

8

4、广度优先搜索的测试结果:

「建立图的邻2

盧立图的勺遷

尿

5 •退出v

o

o o

表矩图

亠克更

请输入你的选择;3

图朗广度优先遍历序列;

1 5 20 6 4

2

3 I? 7 1

4 9 12 13

5、深度优先搜索的测试结果:

8

»

U

9

a

a

a

B

1

1

9

a

8

0 3 -

txt

0 a

0 0

0 a

中!

*HC

iHf

相关文档
最新文档