如何实现邻接表建立算法的编写?
- 内容介绍
- 文章标签
- 相关推荐
本文共计258个文字,预计阅读时间需要2分钟。
cStatus Create(ALGraph *G) { int i, j, k; char v1[20], v2[20]; ArcNode *p, *q; printf(请输入顶点数和边数:); scanf(%d %d, &G->vertices, &G->arcnum); for(i=0; i vertices; i++) { scanf(%s, G->vertices[i].data); G->vertices[i].firstarc=NULL; } for(k=0; k arcnum; k++) { scanf(%s %s, v1, v2); p=(ArcNode *)malloc(sizeof(ArcNode)); p->adjvex=(int)(strcmp(v1, v2) vertices) : (int)strcmp(v2, G->vertices); p->nextarc=G->vertices[p->adjvex].firstarc; G->vertices[p->adjvex].firstarc=p; q=(ArcNode *)malloc(sizeof(ArcNode)); q->adjvex=(int)(strcmp(v2, v1) vertices) : (int)strcmp(v1, G->vertices); q->nextarc=G->vertices[q->adjvex].firstarc; G->vertices[q->adjvex].firstarc=q; } return 1;}
Status Create(ALGraph *G)
{
int i,j,k;
char v1[20],v2[20];
ArcNode *p,*q;
printf("请输入顶点数和边数:");
scanf("%d%d",&G->vertices,&G->arcnum);
for(i=0;i<G->vexnum;i++)
{
scanf("%s",G->vertices[i].data);
G->vertices[i].firstarc=NULL;
}
for(k=0;k<G->arcnum;k++)
{
scanf("%s%s",v1,v2);
i=LocateVex(*G,v1);
j=LocateVex(*G,v2);
p=(ArcNode*)malloc(sizeof(ArcNode));
p->nextarc=G->vertices[i].firstarc;
G->vertices[i].firstarc=p;
p->adjvex=j;
q=(ArcNode*)malloc(sizeof(ArcNode));
q->nextarc=G->vertices[j].firstarc;
G->vertices[j].firstarc=q;
q->adjvex=i;
}
}
本文共计258个文字,预计阅读时间需要2分钟。
cStatus Create(ALGraph *G) { int i, j, k; char v1[20], v2[20]; ArcNode *p, *q; printf(请输入顶点数和边数:); scanf(%d %d, &G->vertices, &G->arcnum); for(i=0; i vertices; i++) { scanf(%s, G->vertices[i].data); G->vertices[i].firstarc=NULL; } for(k=0; k arcnum; k++) { scanf(%s %s, v1, v2); p=(ArcNode *)malloc(sizeof(ArcNode)); p->adjvex=(int)(strcmp(v1, v2) vertices) : (int)strcmp(v2, G->vertices); p->nextarc=G->vertices[p->adjvex].firstarc; G->vertices[p->adjvex].firstarc=p; q=(ArcNode *)malloc(sizeof(ArcNode)); q->adjvex=(int)(strcmp(v2, v1) vertices) : (int)strcmp(v1, G->vertices); q->nextarc=G->vertices[q->adjvex].firstarc; G->vertices[q->adjvex].firstarc=q; } return 1;}
Status Create(ALGraph *G)
{
int i,j,k;
char v1[20],v2[20];
ArcNode *p,*q;
printf("请输入顶点数和边数:");
scanf("%d%d",&G->vertices,&G->arcnum);
for(i=0;i<G->vexnum;i++)
{
scanf("%s",G->vertices[i].data);
G->vertices[i].firstarc=NULL;
}
for(k=0;k<G->arcnum;k++)
{
scanf("%s%s",v1,v2);
i=LocateVex(*G,v1);
j=LocateVex(*G,v2);
p=(ArcNode*)malloc(sizeof(ArcNode));
p->nextarc=G->vertices[i].firstarc;
G->vertices[i].firstarc=p;
p->adjvex=j;
q=(ArcNode*)malloc(sizeof(ArcNode));
q->nextarc=G->vertices[j].firstarc;
G->vertices[j].firstarc=q;
q->adjvex=i;
}
}

