C++数据结构-有向图无向图的邻接表创建

#include <iostream>
#define MAXVEX 4      //起始顶点数默认为6,可在此直接修改
#define MAXEDGE 5     //起始边的数默认为5,可在此直接修改
using namespace std;

//该代码是无向图的邻接表
//注意点1:下标0的位置都不用,所以要多开辟一个空间
//注意点2:头结点信息既可以是字符A,B,C,D,也可以是字符'1','2'...
//注意点3:在创建邻接表时,使用头插法将边结点接在头结点之后

//将无向图的邻接表改为有向图的邻接表,则只要删去下面一段代码即可
//EdgeNode *s2 = new EdgeNode;
//s2->adjvex=m; //无向图现在n是头,m是尾
//s2->next = g.adjlist[n].firstedge;
//g.adjlist[n].firstedge=s2;
//此时这个有向图的邻接表是根据顶点的出度来设置的,而逆邻接表是根据结点的入度来设置的,区分下即可

typedef struct EdgeNode
{
   
    int adjvex;
    struct EdgeNode *next;
}EdgeNode;               //边结点

typedef struct
{
   
    char vextexinfo;     //存放头结点信息(如A,B,C,D)
    EdgeNode *firstedge; //指向该结点的临边
}VextexNode,AdjList;     //头结点(即邻接表)

typedef struct
{
   
    int vexNum;                //顶点数
    int edgeNum;               //边数
    AdjList adjlist[MAXVEX+1
  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值