dfs算法 运用DFS算法解决的图的相关算法应用

编辑:
发布时间: 2020-12-13 14:18:56
分享:

/*求无向图G的连通分量个数dfs运用*/void DFS{ ENode *p; visited[v]=true; visit; p=G->adjList[v].firstarc; while{ if{ DFS; } p=p->nextarc; }}int ComnNum{ int num=0; for{ visited[i]=false; } for{ if{ DFS; num ; } }}

/*图G采用邻接表存储设计一个算法判断图G是否是连通图*/void DFS{ ENode *p; visited[v]=true; visit; p=G->adjList[v].firstarc; while{ if{ DFS; } p=p->nextarc; }}bool IsConnect{ bool flag=true; int visited[maxsize]; for{ if{ flag=false; break; } } return flag;}

/*判断有向图的邻接表中是否有Vi->Vj的路径*/void DFS{ ENode *p; visited[v]=true; visit; p=G->adjList[v].firstarc; while{ if{ DFS; } p=p->nextarc; }}bool visited[maxsize];bool existPath{ for{ visited[i]=false; } DFS; if{ return false; }else{ return true; }}

/*设计一个函数concomx,求用邻接表存储的无向图中节点总数恰好为k 的连通分量个数*/void DFS{ ENode *p; visited[v]=true; Vnum ; for{ if{ DFS; } }}bool visited[maxsize];int concomx{//结点个数 int count=0;//记录连通分量个数 int Vnum=0; for{ visited[i]=false; } for{ Vnum=0; if{ DFS; } if count ; } return count;}

/*设计一个算法,判断一个无向图G是否为一棵树。是树返回true 否则false结论:用DFS 访问节点数为n 访问的边数为2如果是一棵树 访问边数为2*/void DFS{ ENode *pl visited[v]=true; Vnum ;// p=adjList[v].firstarc; while{ Enum ;// if{ DFS; } p=p->nextarc; }}bool IsTrre{ int Vnum=0,Enum=0; for{ visited[i]=false; } DFS; if){ return true; }else{ return false; }}

//无向图G用邻接矩阵G,给定顶点v0出发深度遍历图G,//并将产生的深度遍历生成树存在邻接矩阵B中void DFS{ visited[v]=true; for{ if{ b[v][j]=1; DFS; } }}bool visited[maxsize];void shengchengTree{ for{ visited[i]=false; } for{ if{ DFS; } }}来源:https://www.icode9.com/content-1-603501.html

相关阅读
热门精选
孩子 皮肤