图的邻接表存储类型定义如下
typedef struct ANode
{
int adjvex; //该边的终点编号
struct ANode *nextarc; //指向下一条边的指针
InfoType info; //该边的权值等信息
} ArcNode;
typedef struct Vnode
{
Vertex data; //顶点信息
ArcNode *firstarc; //指向第一条边
} VNode;
typedef struct
{
VNode adjlist[MAXV] ; //邻接表
int n,e; //图中顶点数n和边数e
} AdjGraph;
根据邻接矩阵数组A、顶点个数n和边数e来建立图的邻接表G(采用邻接表指针方式)
void CreateAdj(AdjGraph *&G,int A[MAXV][MAXV],int n,int e)
//创建图的邻接表
{
int i, j;
ArcNode

本文详细介绍了如何使用C语言实现图的邻接表存储结构,包括创建、输出和销毁邻接表,并讨论了基于邻接表的图遍历操作的时间复杂度。此外,提出了邻接表中边的删除、顶点的删除、新边的增加以及深度优先遍历等算法设计问题。同时,提到了将邻接表转换为邻接矩阵的算法设计挑战。
最低0.47元/天 解锁文章
1388

被折叠的 条评论
为什么被折叠?



