图的深度优先遍历实验报告(3)

2019-03-28 17:57

typedef char VertexType[MAXNAME]; typedef struct ArcNode{ int adjvex;

struct ArcNode *nextarc; }ArcNode;

typedef struct VNode{ VertexType data; ArcNode *firstarc;

}VNode,AdjList[MAX_VERTEX_NUM]; typedef struct{ AdjList vertices; int vexnum,arcnum; int kind; }ALGraph; ALGraph G;

Boolean visited[MAX]; int degree[MAX_VERTEX_NUM];

int LocateVex(ALGraph G,VertexType v) {

int i,n;

for(n=0;n

if(strcmp(v,G.vertices[n].data)==0) i=n; } return i; }

ALGraph Create(ALGraph G) {

int i,j,k;VertexType v1,v2;ArcNode *p; printf(\请输入要构造的图的顶点数和弧数:\\n\ scanf(\ printf(\请输入每一个顶点的名字:\\n\ for(i=0;i

scanf(\ G.vertices[i].firstarc=NULL; }

printf(\各顶点的位置以及名称为:\\n\ for(i=0;i

printf(\

printf(\请输入要构造的是无向图还是有向图:无向用0表示,有向用1表示:\\n\ scanf(\

for(i=0;i

printf(\请输入每条弧的始点和终点:\\n\ if(G.kind==1) {

for(k=0;k

scanf(\

i=LocateVex(G,v1);j=LocateVex(G,v2); p=(ArcNode *)malloc(sizeof(ArcNode)); p->adjvex=j;

p->nextarc=G.vertices[i].firstarc; G.vertices[i].firstarc=p; degree[i]++; } }

if(G.kind==0) {

for(k=0;k

scanf(\

i=LocateVex(G,v1);j=LocateVex(G,v2);

p=(ArcNode *)malloc(sizeof(ArcNode)); p->adjvex=j;

p->nextarc=G.vertices[i].firstarc; G.vertices[i].firstarc=p; degree[i]++;

p=(ArcNode *)malloc(sizeof(ArcNode)); p->adjvex=i;

p->nextarc=G.vertices[j].firstarc; G.vertices[j].firstarc=p; degree[j]++; } } return G; }

void print(ALGraph G) { int i; ArcNode *p;

for(i=0;i

printf(\ for(p=G.vertices[i].firstarc;p;p=p->nextarc)

printf(\ printf(\ if(G.kind==1)

printf(\出度为:m\\n\ if(G.kind==0)

printf(\总度数为:m\\n\ } }

int FirstAdjVex(ALGraph G,int v) {

ArcNode *p;

p=G.vertices[v].firstarc; if(p)

return(p->adjvex); else

return -1; }

int NextAdjVex(ALGraph G,int v,int w) {

ArcNode *p;int i;


图的深度优先遍历实验报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:青岛市城阳区教育体育局

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: