Boolean visited[MAX_VERTEX_NUM]; //访问标志数组。
Status (*VisitFunc)(int v); //VisitFunc是访问函数,对图的每个顶点调用该函数。
void DFSTraverse (Graph G, Status(*Visit)(int v)) //图的深度优先遍历。
{
VisitFunc = Visit;
for(v=0; v<G.vexnum; ++v)
visited[v] = FALSE; //访问标志数组初始化。
for(v=0; v<G.vexnum; ++v)
if(!visited[v])
DFS(G, v); //对尚未访问的顶点调用DFS。
}
void DFS(Graph G, int v) //从第v个顶点出发递归地深度优先遍历图G。
{
visited[v]=TRUE;
VisitFunc(v); //访问第v个顶点。
for(w=FirstAdjVex(G,v); w>=0; w=NextAdjVex(G,v,w))
//FirstAdjVex返回v的第一个邻接顶点,若顶点在G中没有邻接顶点,则返回空(0)。
//若w是v的邻接顶点,NextAdjVex返回v的(相对于w的)下一个邻接顶点。
//若w是v的最后一个邻接点,则返回空(0)。
if(!visited[w])
DFS(G, w); //对v的尚未访问的邻接顶点w调用DFS。
}
分享到:
相关推荐
数据结构 C++ 源码 深度优先遍历 实现树的深度优先遍历
c++的数据结构实现图的深度遍历 1.分别采用邻接矩阵存储结构实现图的深度优先遍历 2.对任意给定的图(顶点数边树自定)建立它的邻接矩阵并输出 3.实现图的深度优先遍历
《数据结构与算法(C++)》相关 邻接表表示的图的深度优先遍历的动画演示
图的深度优先遍历(C语言数据结构)C语言的代码,可用visual C++进行编译
这是一个用C(C++)语言编写的图的遍历算法!适合做数据结构课程设计的同学们参考学习!
数据结构有关的图的深度优先和广度优先遍历
C++实现,数据结构,图的邻接矩阵表示,深度优先遍历,广度优先遍历,DFS,BFS,为什么要五十个字才能上传啊
邻接矩阵存储图的深度优先遍历 邻接矩阵表示的无向图遍历实现。 #include using namespace std; #define MAX_SIZE 100//最大顶点数 。 #define MAX_INT 326564//表示极大值,即 ∞ 。 typedef char Elemtype_A;//...
数据结构课程设计图的遍历 printf("\n"); printf("\t\t\t ~~~~~~~~ 功能菜单 ~~~~~~~ \n"); printf("\n"); printf("\t\t\t*********************************************\n"); printf("\t\t\t* 1.创建图 *\n...
树的深度和广度遍历C++源程序。数据结构课上的作业
本资源是用C语言所写的,数据结构中图的创建及其相关的深度,广度遍历
这个是数据结构的深度遍历代码案例,希望学习数据结构的朋友们可以有所帮助!
利用深度优先搜索算法实现图的遍历,用户输入行列数后,从当前位置访问,进行深度优先遍历。 系统需求环境:win10 vs2015 vc6.0 【概要设计】 1. 输入房间的行列数,然后输入黑红砖块的位置显示并用“@”表示当前黑...
给定某个图的结构数据和起点位置, 创建出图后, 再采用深度优先遍历算法, 输出所有的遍历节点序列.
数据结构进行图的遍历,包括深度优先遍历和广度优先遍历,并输出链表
c++数据结构--实验 线性表的基本操作 1.实验内容与要求 1)理解线性表的概念 2)设计一个线性表,分别用顺序存储结构和链式存储结构实现,完成线性表的构造、查找、插入、删除、输出等基本操作。 3)掌握两种存储...
1)创建一个图; 2)图的深度优先遍历的递归算法; 3)图的深度优先遍历的迭代算法; 4)图的广度优先遍历算法。
是C++的图的深度遍历和度遍历,学习数据结构的必要重点知识。
数据结构那本书上的图的邻接表存储 struct node { int vertex; struct node * nextnode; };