#include<iostream>
using namespace std;
#define MAXVEX 100
typedef char VType;
typedef int EType;
typedef struct ENode//边表结点
{
int Avex;//下标
EType Weigh;//权值
struct ENode *pNext;
}ENode;
typedef struct VNode//顶点结点
{
VType data;
ENode *pFirst;
}VNode,VNodeL[MAXVEX];
typedef struct
{
VNodeL VLnode;
int Vnums;
int Enums;
}ALGraph;
void CreateALGraph(ALGraph &G)
{
int i, j, k;
ENode *pE;
cin >> G.Vnums >> G.Enums;
for (i = 0; i < G.Vnums; ++i)
{
cin >> G.VLnode[i].data;
G.VLnode[i].pFirst = NULL;
}
for (k = 0; k < G.Enums; ++k)//每次循环两次链接
{//采用头插法,如果采用尾插法,要讨论其中一个结点是否为顶点结点
cin >> i >> j;
pE = new ENode;
pE->Avex = j;
pE->pNext = G.VLnode[i].pFirst;
G.VLnode[i].pFirst = pE;
pE = new ENode;
pE->Avex = i;
pE->pNext = G.VLnode[j].pFirst;
G.VLnode[j].pFirst = pE;
}
}
int main(void)
{
ALGraph G;
CreateALGraph(G);
return 0;
}
数据结构之图的邻接表存储(参考C博客—研究毛)
最新推荐文章于 2021-09-24 11:35:37 发布