-->
当前位置:首页 > 题库 > 正文内容

程序填空题:采用邻接表表示法创建无向图

Luz4年前 (2021-05-10)题库2058
采用邻接表表示法创建无向图。

```c++

#include
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)](1); j = @@[LocateVex(G, v2)](1);
ArcNode *p1=new ArcNode;
@@[p1->adjvex=j](1);
p1->nextarc= @@[G.vertices[i].firstarc](1); G.vertices[i].firstarc=p1;
ArcNode *p2=new ArcNode;
@@[p2->adjvex=i](1);
p2->nextarc= @@[G.vertices[j].firstarc](1); G.vertices[j].firstarc=p2;
}
return OK;
}
```






答案:
第1空:LocateVex(G, v1)

第2空:LocateVex(G, v2)

第3空:p1->adjvex=j

第4空:G.vertices[i].firstarc

第5空:p2->adjvex=i

第6空:G.vertices[j].firstarc

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。