关键词不能为空

当前您在: 主页 > 英语 >

采用邻接表存储结构实现图的广度优先遍历。

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-01 21:43
tags:

-

2021年2月1日发(作者:tell)



课程设计题目九:图的广度优先遍历



基本要求:



采用邻接表存储结构实现图的广度优先遍历。




2


)对任意给定的图(顶点数和边数自定)


,建立它的邻接表并输出;




3


)实现图的广度优先遍历


*/



#include



#include



#include



#define MAX_NUM 20



int visited[MAX_NUM]={0};



typedef int VertexType;



typedef enum {DG=1,UDG}GraphKind;



typedef struct ArcNode



{




int adjvex;




int weight;




struct ArcNode *nextarc;




ArcNode *info;



}ArcNode;



typedef struct VNode



{




VertexType data;




ArcNode *firstarc;



}VNode,AdjList[MAX_NUM];



typedef struct



{




AdjList vertices;




int vexnum,arcnum;




GraphKind kind;



}ALGraph;



void PRIN(ALGraph &G);



void Creat_adjgraph(ALGraph &G);



void bfs(ALGraph &G,int v);



void Creat_adjgraphDG(ALGraph &G);



void Creat_adjgraphUDG(ALGraph &G);



void Creat_adjgraph(ALGraph &G);





void Creat_adjgraphDG(ALGraph &G)



{




int i,s,d;




ArcNode *p=NULL,*q=NULL;=DG;




printf(


请输入顶点数和边数 :





scanf(





for(i=0;i<;++i)




{





printf(


< br>%d


个顶点信息:






scanf(





es[i].firstarc=NULL;}




for(i=0;i<;++i)




{





printf(


< br>%d


条边的起始顶点编号和终止顶点编号:






scanf(





while(s<1||s>||d<1||d>)





{






pri ntf(


编号超出范围,重新输入







scanf(





s--;





d--;





p=new(ArcNode);





p->adjvex=d;





p->nextarc=es[s].firstarc;





es[s].firstarc=p;




}



}





void Creat_adjgraphUDG(ALGraph &G)



{




int i,s,d;




ArcNode *p,*q;




=UDG;




printf(


请输入顶点数和边数:





scanf(




for(i=0;i<;++i)




{





printf(


< br>%d


个顶点信息:






scanf(





es[i].firstarc=NULL;}




for(i=0;i<;++i)




{





printf(


< br>%d


条边的起始顶点编号和终止顶点编号:






scanf(





while(s<1||s>||d<1||d>)





{






pri ntf(


编号超出范围,重新输入







scanf(





s--;


-


-


-


-


-


-


-


-



本文更新与2021-02-01 21:43,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/595291.html

采用邻接表存储结构实现图的广度优先遍历。的相关文章