- 1
- 0
- 约2.44千字
- 约 4页
- 2017-11-20 发布于北京
- 举报
为图建立邻接表深度与广度遍历
为一个图建立一个邻接表、编写深度遍历和广度遍历算法
#include stdio.h
#includestdlib.h
#define MaxNode 40
#define M 20
typedef struct ArcNode
{ int adjvex;
struct ArcNode *nextarc;
}ArcNode;
typedef struct
{ int vertex;
struct ArcNode *firstarc;
}vernode;
typedef vernode adjlist[MaxNode];
int queue[MaxNode];
//在遍历过程中是从右边开始
void dfs(adjlist g,int k,int visited[]) //从顶点k出发,深度优先搜索
{
ArcNode *p;
int w;
visited[k]=1;
printf(%d-,g[k].vertex);
p=g[k].firstarc;
while(p!=NULL)
{
w=p-adjvex;
if(visited[w]==0)
dfs(g,w,visited);
p=p-nextarc;
}
}
void bfs(adjlist g,int k,int visited[]) //从顶点k出发,广度优先
原创力文档

文档评论(0)