原图如下:
其邻接表表示如下:
代码如下:
// duoduantu.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdlib.h>
#define MAX_VERTEX_NUM 20
#define MAX_VALUE_TYPE INT_MAX
typedef int VertexType;
typedef struct node{
VertexType adjvex; //邻接点域
int weight;
struct node* next; //指向下一个邻接点的指针域
}EdgeNode; //边表节点
typedef struct vnode{
VertexType vertex; //顶点域
EdgeNode *firstedge; //边表头指针
}VertexNode; //表头节点
typedef VertexNode adjList[MAX_VERTEX_NUM];
typedef struct{
adjList adjlist; //邻接表
int n,e; //node and edge
}ALGraph;
void CreateALGraph(ALGraph *G)
{
int i, j;
int k;
EdgeNode *s;
scanf("%d%d", &G->n, &G->e);
for (i = 0; i <G->n; i++