t; //权重。
}ArcNode;
typedef struct VNode
{
ArcNode* firstarc;
}VNode,AdjList[MAX_VERTEX_NUM];
typedef struct
{
AdjList vertices;
int vexnum,arcnum;
}ALGraph;
编写几个功能函数:
void initALGraph(ALGraph* GPt,int vn) //初始化结点
{
GPt->arcnum = 0;
GPt->vexnum = vn;
for(int i=0;i
{
GPt->vertices[i].firstarc = NULL;
}
}
void insertArc(ALGraph* GPt,int vhead,int vtail,int w) //增加结点操作
{
ArcNode* arcNodePt = new ArcNode;
arcNodePt->nextarc = NULL;
arcNodePt->adjvex = vtail;
arcNodePt->weight = w;
ArcNode* tailPt = GPt->vertices[vhead].firstarc;
if(tailPt==NULL)
{
GPt->vertices[vhead].firstarc = arcNodePt;
}
else
{
while(tailPt->nextarc!=NULL)
{
tailPt = tailPt->nextarc;
}
tailPt->nextarc = arcNodePt;
}
GPt->arcnum ++;
}
void displayGraph(ALGraph G) //打印结点
{
ArcNode* arcNodePt;
for(int i=0;i {
arcNodePt = G.vertices[i].firstarc;
cout<<"vertex"< while(arcNodePt!=NULL)
{
cout<adjvex<<"("<<"weight"<weight<<")"<<" ";
arcNode