范文无忧网范文学习范文大全

图的矩阵深度和广度遍历算法

02月18日 编辑 fanwen51.com

[八阵图的诗意]八阵图的诗意 《八阵图》 作者:杜甫 原文: 功盖三分国,名高八阵图。 江流石不转,遗恨失吞吴。 注释: 1、八阵图:由八种阵势组成的图形,用来操练军队或作战。 2、三分国:指三国时魏、...+阅读

图的遍历是指从图中任一给定顶点出发,依次访问图中的其余顶点。如果给定的图是连通图,则从图中的任意一点出发,按照一个指定的顺序就可以访问到图中的所有顶点,且每个顶点只访问一次。这个过程称为图的遍历。 图的遍历比树的遍历复杂的多。树是一种特殊类型的图,即无圈(无回路)连通图。树中的任意两个顶点间都有唯一的路径相通。在一个顶点被访问过之后,不可能又沿着另外一条路径访问到已被访问过的结点。而图中的顶点可能有边与其他任意顶点相连 。因此在访问了某个顶点之后,可能沿着另一条边访问已被访问过的顶点。例如图(a)中的G1,在访问了V1,V2和V3之后,有可能沿着边(V3,V1)访问到V1。为了避免一顶点被多次访问,可以设立一个集合Visited,用来记录已被访问过的顶点。它的初值为空 集。一旦V1被访问过,即把V1加到集合Visited中。图的遍厉通常有两种:图的深度优先 搜索和图的广度优先搜索。 1)图的深度优先搜索 从图G=(V,E)的一个顶点V0出发,在访问了任意一个与V0相邻且未被访问过的顶点W1之后,再从W1出发,访问和W1相邻且未被访问过的顶点W2,然后再从W2出发进行如上所述访问,直到找到一个它相邻的结点,都被访问过的结点为止。然后退回到尚有相 邻结点未被访问过的顶点,再从该顶点出发,重复上述搜索过程,直到所有被访问过的顶点的邻接点都被访问过为止。图的这种遍历过程就称为图的深度优先搜索。例如从顶点V1出发对图3.3.5进行深度优先搜索,遍历的顺序为 V1,V2,V5,V10,V6,V7,V3,V12,V1 1,V8,V4,V9。(与邻接表中的邻接点排列顺序有关,即p->next.vertex=v2 or v3对遍历 顺序有影响 ) 例25.(p194.c)图的深度优先搜索。从图G的顶点V0 发进行深度优先搜索,打印出各个顶点的遍历顺序。 解:图的深度优先搜索法为:

(1)首先访问V0并把V0加到集合visited中;

(2)找到与V0相邻的顶点W,若W未进入 visited中,则以深度优先方法从W开始搜索。

(3)重复过程

(2)直到所有于V0相邻的顶点 都被访问过为止。 下面是对用邻接表表示的图G进行深度优先搜索的程序 int rear=0; /*Visit和rear都为全局变量*/ int visit[500]; depth_first_search(g,v0) /*从V0开始对图G进行深度 优先搜索*/ graphptr g[ ]; /*指针数组,为邻接表表头顶点指针 g[vi]...g[vn]*/ int v0; /*这里V0和W都是顶点标号,如V0=0或1*/ { /*g[v0]是顶点V0的表头指针*/ int w; graphptr p; /*链表的结点指针*/ visit [++rear]=v0; printf("%d\n",v0); p=g[v0];/*指定一个顶点,通过邻接表表头指针 ,访问v0的邻接顶点*/ while (p!=NULL) { w=p->vertex ;/*这里W是与V0相邻的一个顶点*/ if (!visited(w))/*当V0的相邻结点,W未被访问时,从W开始遍厉*/ depth_first_search(g,w); p=p->next;/*接着访问另一个相邻顶点*/ } } int visited(w) /*检查顶点w是否进入visited(w)*/ int w ; { int i; for (i=1;inext;/*再考虑该结点的下一个相邻顶点*/ } } } visited (q,tail,v)/*判断顶点是否被访问过,访问过时,返回1,否则返回0*/ int q[ ],tail,v;/*进入队列的顶点,在front之前的顶点已被访问过打印输出, 在front和tail之间的顶点是即将要访问顶点*/ { int i; for(i=1;i

延伸阅读:

如何加强审计监督全覆盖的深度及广度一是以预算执行审计为主线,实行轮审制,实现对一级预算单位的审计监督全覆盖 。坚持把预算执行审计作为审计的重中之重,形成了预算执行审计“一盘棋”的工作格局,注重从组织方式...

图的遍历的实现数据结构课程设计Queue.h-----------------------------------------#include#includeconst int maxSize=50;class Queue{ public:Queue(){}; ~Queue() {}; virtual bool EnQueue(const int&...

生男生女清宫图的怀孕月份和虚岁是如何计算的虚岁没算准. 一:七七四十九,减去生母岁,如果结果一致,一定要按虚岁 计算1.受孕月份没弄清 二,说明准确率很高,可能存在如下原因、清宫图(一定要算清阴历的月份和虚岁)准确率91% 清宫...

如何在小学数学教学中把握法制渗透的深度和广度小学生的茁壮成长离不开教育,不仅仅是科学文化知识教育,而更重要的是理想、道德和法制教育。因此,学科教学中增强法制教育的渗透,显得尤为重要。如何在数学课堂中渗透法制教育,取...

蜡笔小新和大耳朵图图的经典语句太阳只有一个,它带给了图图温暖; 风只有一阵,吹走了图图身上的汗水;爸爸只有一个,那巧克力和冰欺凌也不能换。 “ 看 、0.0 图 图会 动 耳神功 喔 ~!” 随着图图年龄的增长,他越来...

如何深度思考1.视角的高度几个高度的视角看问题,一个是自己的视角,一个是比你等级高的视角,一个是比你等级低或平级的视角,一个是上帝视角。自己的视角就是是不是符合自己的利益,三观,理念比你...

如何用卡西欧fx82es计算器计算矩阵和行列式把方程化成下列形式: ax+by=c dx+ey=f 82es-plus按Mode键,按2,按2。 在X1处输入b除以a的值,Y1处输入c除以a的值。 在X2处输入e除以d的值,Y2处输入f除以d的值,输入完后按AC。 按Shi...

什么叫算法什么叫计算机算法一、算法是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。算法常常含有重复的步骤和一些比较或逻辑判断。如果一个算法有缺陷,或不适...

增值税的标准和算法从计税原理上说,增值税是对商品生产、流通、劳务服务中多个环节的新增价值或商品的附加值征收的一种流转税。 根据我国现行增值税税法,增值税的定义可以概括为:增值税是对在我...

推荐阅读
图文推荐
栏目列表