图的邻接表存储与访问

本文详细介绍了图的邻接表数据结构,包括它的定义、如何存储以及如何进行深度优先搜索和广度优先搜索。通过实例解析,帮助读者理解邻接表在解决图遍历问题上的优势。
摘要由CSDN通过智能技术生成
#define MAX_VERTEXT_NUM 20

typedef struct edge{     /*边定义*/
    int from,to,weight;
}Edge,*Edged;

typedef struct ArcNode{     /*边结点定义*/
    int adjvex;
    struct ArcNode *nextArc;
    int weight;
}ArcNode;

typedef struct VNode{     /*顶点定义*/
    char data;
    ArcNode *firstArc;
}VNode, AdjList[MAX_VERTEXT_NUM];

typedef struct{     /*图定义*/
    AdjList verTices;
    int vexNum;
    int arcNum;
    int kind;
    indegree Indegree;
}ALGraph;

/*建立有向图G 的邻接表存储*/
void CreateGraph(ALGraph *G)
{
    int i,j,k,weight;
    ArcNode *arcNode;
    printf("请输入顶点数和边数:");
    scanf("%d %d",&G->vexNum,&G->arcNum);
    //建立顶点表
    for (i = 0; i < G->vexNum; i++)
    {
        printf_s("请输入第%d个顶点:", i);
        cin>>G->verTices[i].data;
        arcNode = (ArcNode *)malloc(sizeof(ArcNode));
        arcNode->adjvex=NULL;
        arcNode->nextArc=NULL;
        G->verTices[i].firstArc=arcNode;
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值