• 邻接表基础常用模板


    #define MAX_VEX 10//最大顶点数
    typedef int InfoType;
    typedef char VexType;//顶点的类型
    typedef int WeightType;//权值的类型

    图的种类(有向图、无向图、加权有向图、加权无向图),采用枚举法(这一段可以选择性不写)

    typedef enum
    {
        DG = 1, AG, WDG, WAG//有向图  无向图  带权有向图  带权无向图
    }GraphKind;

    邻接表的前半部分是顺序表,所以定义一个顺序表的结构体

    typedef struct VexNode
    {
        VexType data;//顶点的值
        int indegree;//顶点的度
        LinkNode *firstarc;//指向第一个表节点,有向图是入度或出度或没有
    }VexNode;//顶点节点类型定义

    邻接表后半部分是链表,所以定一个链表的结构体

    typedef struct LinkNode
    {
        int adjvex;//邻接点在头结点数组中的位置(下标)
        InfoType info;//节点信息   如权值
        struct LinkNode *nextarc;//指向下一个表节点
    }LinkNode;

    接下来定义图的结构体

    typedef struct
    {
        GraphKind kind;
        int vexnum;//顶点的个数
        VexNode AdjList[MAX_VEX];//头结点的类型的数组
    }ALGraph;

    over

  • 相关阅读:
    [ Virtuoso ] 增加自定义 Layer 需要做哪些事?
    [ ENV ] 记录一些自己比较喜欢的初始化语句
    [ SVRF ] 学习笔记
    [ Skill ] 键位不够用之 右键 Menu
    ubuntu创建桌面快捷方式
    git常用命令
    架设Git服务器
    Linux下安装redis
    mysql查询语句
    mysql数据库基本操作
  • 原文地址:https://www.cnblogs.com/vocaloid01/p/9514119.html
Copyright © 2020-2023  润新知