利用邻接表完成图的BFS和DFS
生活随笔
收集整理的這篇文章主要介紹了
利用邻接表完成图的BFS和DFS
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <iostream>
using namespace std;
#define Maxsize 100
typedef char VertexType;
typedef int EdgeType;typedef struct ArcNode{ //存儲邊 int adjvex;struct ArcNode *nextarc;
}ArcNode;
typedef struct VNode{VertexType data;ArcNode *firstarc;
}VNode;
typedef struct{VNode adjlist[Maxsize];int vexnum,arcnum;
}AGraph; bool visited[Maxsize];
void BFS(AGraph *G,int v){ArcNode *p;Queue Q;InitQueue(Q);visit(v);visited[v]=True;Enqueue(&Q,v);while(!IsEmpty(Q)){DeQueue(&Q,v);p=G->adjlist[v].firstarc;while(p!=NULL){if(visited[p->adjvex]==False){visit(p->adjvex);visited[p->adjvex]=True;EnQueue(&Q,p->adjvex);}p=p->nextarc;}}
}bool DFS(AGraph *G,int v){ArcNode *p;visit(v);visited[v]=True;p=G->adjlist[v].firstarc;while(p!=NULL){if(visited[p->adjvex]==False)DFS(G,p->adjvex);p=p->nextarc;}
}
?
總結
以上是生活随笔為你收集整理的利用邻接表完成图的BFS和DFS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 页式存储管理
- 下一篇: BFS求无权图的单源最短路径-邻接矩阵存