题目详情:
![](https://i-blog.csdnimg.cn/blog_migrate/9d427b4d7ddd15e43fa65fb5694738c2.png)
答案完整代码:
#include <iostream>
using namespace std;
#define MVNum 100
#define OK 1
typedef char VerTexType;
typedef int OtherInfo;
typedef struct ArcNode
{
int adjvex;
struct ArcNode *nextarc;
}ArcNode;
typedef struct VNode
{
VerTexType data;
ArcNode *firstarc;
}VNode, AdjList[MVNum];
typedef struct
{
AdjList vertices;
int vexnum, arcnum;
}ALGraph;
int LocateVex(ALGraph G , VerTexType v)
{
for(int i = 0; i < G.vexnum; ++i)
if(G.vertices[i].data == v)
return i;
return -1;
}
int CreateUDG(ALGraph &G)
{
int i , k;
cin >> G.vexnum >> G.arcnum;
for(i = 0; i < G.vexnum; ++i)
{
cin >> G.vertices[i].data;
G.vertices[i].firstarc=NULL;
}
for(k = 0; k < G.arcnum;++k){
VerTexType v1 , v2;
int i , j;
cin >> v1 >> v2;
i = LocateVex(G,v1);
j = LocateVex(G,v2);
ArcNode *p1=new ArcNode;
p1->adjvex=j;
p1->nextarc= G.vertices[i].firstarc;
G.vertices[i].firstarc=p1;
ArcNode *p2=new ArcNode;
p2->adjvex=i;
p2->nextarc= G.vertices[j].firstarc;
G.vertices[j].firstarc=p2;
}
return OK;
}