C-数据结构-图-深、广遍历

来源:互联网 发布:温州网络学堂手机版 编辑:程序博客网 时间:2024/04/29 22:01
//遍历//深度-邻接表Dfs (Graph g,int v){ArcNode *p;printf ("%d",v);visited[v]=1;p=g.adjlist[v].firstarc;while(p!=NULL){if(!visited[p->adjvex])Dfs(g,p->adjvex);p=p->nextarc;}}//深度-邻接矩阵Dfs (Graph *g,int v){int j;printf("%d",v);//访问visited[v]=1;for(j=0;j<n;j++){m=g->arcs[v][j];if (m&&!visited[j])Dfs(g,j);}}//广度-邻接表Bfs (Graph g,int v){LkQue Q;InitQueue(&Q);printf("%d",v);visited[v]=1;EnQueue(&Q,v);while (!EmptyQueue(Q)){v=Gethead(&Q);OutQueue(&Q);p=g.adjlist[v].firstarc;while (p!=NULL){if (!visited[p->adjvex]){printf("%d",p->adjvex);visited[p->adjvex]=1;EnQueue(&Q,p->adjvex);}p=p->nextarc;}}}//广度-邻接矩阵Bfs (Graph g,int v){LkQue Q;int j;InitQueue(&Q);printf("%d",v);visited[v]=1;EnQueue(&Q,v);while (!EmptyQueue(Q)){v=Gethead(&Q);OutQueue(&Q);for (j=0;j<n;j++){m=g->arcs[v][j];if (m && !visited[j]){printf("%d",j);visited[j]=1;EnQueue(&Q,j);}}}}


 

0 0