遍历邻接表O(n+e)

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

图的邻接表存储类型定义如下

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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值