下载此文档

采用邻接表实现图的DFS和BFS.docx


文档分类:建筑/环境 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
#include""
#include""
#define MVNum 30
#define QueueSize 30
#define VexType int
typedef struct ode
{
int adjvex;
struct ode *nextarc;
}ode;
typedef struct VexNode
{
VexType data;
ode *firstarc;
}VexNode,AdjList[MVNum];
typedef struct
{
int vexnum,um;
AdjList vertices;
}ALGraph;
int LocateVex(ALGraph *G, VexType v)
{
int i;
for(i=0;i<=G->vexnum;i++)
{
if(G->vertices[i].data==v)
return i;
}
return -1;
}
void CreateGraph(ALGraph *G)
{
int i,j,k;
int v1,v2;
ode *p=NULL,*q=NULL;
printf("请输入顶点数和边数(输入格式为:顶点数边数):\n");
scanf("%d%d",&G->vexnum,&G->um);
printf("请输入顶点信息(顶点以1为起始,每个顶点以回车作为结束):\n");
for(i=1;i<=G->vexnum;i++)
{
scanf("%d",&G->vertices[i].data);
G->vertices[i].firstarc=NULL;
}
printf("请输入边的信息(输入格式为:i,j):\n");
for(k=1;k<=G->um;k++)
{
scanf("%d,%d",&v1,&v2);
i=LocateVex(G,v1);
j=LocateVex(G,v2);
p=(ode*)malloc(sizeof(ode));
if(!p)
exit(1);
p->adjvex=j;
p->nextarc=G->vertices[i].firstarc;
G->vertices[i].firstarc=p;
q=(ode*)malloc(sizeof(ode));
if(!q)
exit(1);
q->adjvex=i;
q->nextarc=G->vertices[j].firstarc;
G->vertices[j].firstarc=q;
}
}
void PrintGraph(ALGraph *G)
{
int i;
ode *p=NULL;
for(i=1;i<=G->vexnum;i++)
{
printf("%d",G->vertices[i].data);
p=(ode*)malloc(sizeof(ode));
if(!p)
exit(1);
p=G->vertices[i].firstarc;
while(p)
{
prin

采用邻接表实现图的DFS和BFS 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数8
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小16 KB
  • 时间2018-01-07