编写一个程序实现图的遍历运算,出图的深度优先遍历序列(递归算法)

如题所述

lz 问的也太easy了 其实这样的代码 度娘那 何止千万?
随便写个深搜:
//如果是按邻接表存放
void dfs(graph G,int i)
{
if(G.vertices[i].firstarc==NULL) return;
//下面开始搜
ArcNode *p;//弧指针
for(p=G.vertices[i].firstarc;p;p=p->nextarc)
{
//如果访问过则置真
if(!isvisited())
{
.............
h=下一个要搜的点
// 写一个定位函数就ok了
访问函数;
dfs(G,h);
// 不需要恢复了。。。
}
}
}
温馨提示:内容为网友见解,仅供参考
无其他回答

求一个C语言编程,图的遍历,深度优先和广度优先搜索的程序。要浅显易懂...
int NextVex(Graph G,int i,int j){ if(i>=0 && i<G.vexnum && j>=0 && j<G.vexnum){ \/\/i,j合理 for(int k=j+1;k<G.vexnum;k++)if(G.arcs[i][k]!=INFINITY) return k;}

图的遍历:深度优先搜索(邻接矩阵存放)
程序如下,编译环境vs2005和dev-c++,将图中顶点数和边线数组改为实际值。\/* 图的深度优先遍历 *\/ include <stdlib.h> include <stdio.h> struct node \/* 图顶点结构定义 *\/ { int vertex; \/* 顶点数据信息 *\/ struct node *nextnode; \/* 指下一顶点的指标 *\/ };type...

图的深度\/广度优先遍历C语言程序
void DFS(GRAPH g,int qidian,int mark[])\/\/从第qidian个点出发深度优先周游图g中能访问的各个顶点 { int v1;mark[qidian]=1;printf("%c ",g.vexs[qidian]);for(v1=0;v1<g.num;v1++){ if(g.arcs[qidian][v1]!=0&&mark[v1]==0)DFS(g,v1,mark);} } \/***6。图的...

求c语言图的深度优先遍历算法
printf("%c ",G->adjlist[v].vertex);visited[v]=True; \/* 访问第v个顶点,并把访问标志置True *\/ for(w=FirstAdjVertex(G,v);w;w=NextAdjVertex(G,v,w))

Python算法系列—深度优先遍历算法
一、什么是深度优先遍历 深度优先遍历算法是经典的图论算法。从某个节点v出发开始进行搜索。不断搜索直到该节点所有的边都被遍历完,当节点v所有的边都被遍历完以后,深度优先遍历算法则需要回溯到v以前驱节点来继续搜索这个节点。注意:深度优先遍历问题一定要按照规则尝试所有的可能才行。二、二叉树 2....

...1创建图的邻接矩阵和邻接表 2验证图的深度优先、广度优先遍历算法 3...
\/\/ Description: 深度优先搜索并输出 \/\/ Input: Graph - 图; n - 图的结点的个数; StartEdge — 开始的结点;\/\/ Output: Console下输出遍历的顺序 \/\/ Tags: 递归调用 _dfs过程、回溯算法 void _dfs(Edge **&graph, bool *visited, int n, int index);void DFS(Edge **&graph, int n...

深度优先搜索 —— 新手上路的一道坎
一、DFS原理和应用1. 算法原理 深度优先搜索是图遍历的一种,简单来说就是“选一个起点,尽可能深地走,遇到未访问节点则深入,直到无路可走,然后回溯”。举例来说,从节点0开始,若相邻节点未访问,优先选择编号最小的未访问节点。2. 实现和应用示例 遍历无向图:如从0号节点出发,输出遍历序列...

图的深度优先遍历和广度优先遍历所得序列是否唯一?有实例最好,谢谢哈...
这个图的深度优先搜索结果可以是 ABEFCD或者ADCBFE就看你对于同一层的节点的优先顺序,不过一般默认的是从左到 右,所以一般会写ABEFCD 它的广度优先搜索结果可以是 ABCDEF 或者 ADCBFE也看对同一层节点的搜索顺序。一般的顺序也是从左到右,所以一般会写ABCDEF ...

...矩阵数据结构的定义、创建;图的深度优先遍历、广度优先遍历...
\/* 程序1:邻接表的dfs,bfs 其中n是点的个数,m是边的个数,你需要输入m条有向边,如果要无向只需要反过来多加一遍即可。*\/#include <stdio.h>#include <string.h>#define MAXM 100000#define MAXN 10000int next[MAXM],first[MAXN],en[MAXM],n,m,flag[MAXN],pd,dl[MAXN],hea...

数据结构(C语言版) 图的遍历和拓扑排序
数据结构(C语言版) 图的遍历和拓扑排序 任务:给定一个有向图,实现图的深度优先,广度优先遍历算法,拓扑有序序列,并输出相关结果。功能要求:输入图的基本信息,并建立图存储结构(有相应提示),输出遍历序列,然后进行拓... 任务:给定一个有向图,实现图的深度优先, 广度优先遍历算法,拓扑有序序列,并输出相关结果。

相似回答