数据结构之图的遍历(BFS+DFS)

//定义全局变量

const int Maxnum=50;
typedef int AdjMatrix[Maxnum][Maxnum];//定义边数组结构
typedef Struct
{
   int vexnum,arcnum;//顶点数、边数
   AdjMatrix arcs;//边数组
}Graph;//图

bool visited[Maxnum];//标记是否访问的数组


//DFS:时间复杂度O(n*n)

//相当于树遍历中的前序遍历

//适合寻找目标明确,以找到目标为目的的情况

void DFS(Graph &g, int v)
{
   visited[v]=true;//从V开始访问,flag它
   printf("%d",v);//打印v
   for(int j=0;j


//BFS:时间复杂度O(n*n)

//相当于树遍历中的层次遍历

//适合在不断扩大遍历范围时找到相对最优解的情况

void(Graph &g)
{
  for(int i=0;i Q;
  for(int i=0;i


你可能感兴趣的:(数据结构)