图的邻接表的类型定义如下所示:
#define MaxVertexNum 50
typedef struct node{
int adjvex;
struct node*next;
}EdgeNode;
typedef struct{
VertexType vertex;
EdgeNode*firstedge;
}VertexNode;
typedef VertexNode A djList[MaxVertexNum];
typedef struct{
AdjList adjiist;
int n,e;
}ALGraph;
为便于删除和插入图的顶点的操作,可将邻接表的表头向量定义为链式结构,两种定义的存储表示实例如下图所示,请写出重新定义的类型说明。
参考答案:
typeclef struct ArcNode{ VNode*adjvex; //该弧所指向的顶点的位置 struct ArcNode*nextarc; //指向下一条弧的指针 }ArcNode; typedef struct VNode{ VertexType data; //顶点信息 struct VNode*nextVertex; //指向下一个顶点的指针 ArcNode*firstarc; //指向第一条依附该顶点的弧 }VNode.*AdjList; typedef struct{ AdjList adjList; int n,e; }ALGraph;