图论---链式前向星

作者: 哟破赛呦 | 来源:发表于2019-03-22 19:27 被阅读2次

    链式前向星,存图方法

    #include <string.h> /*for memset*/
    
    //最大顶点数与最大边数
    const int V=100;
    const int E=100;
    
    //边结构体定义
    struct Edge{
        int to;   // 这条边的另一个顶点
        int next; // 指向下一条边的数组下标,-1为不存在;
        int len;  // 权值
    };
    
    //head[i] 表示顶点i的边的数组下标,-1表示无边;
    int head[V];//第一条边
    Edge edge[E];
    
    //链式前向星初始化,之初始化顶点数组
    void init(){
        memset(head, -1, sizeof(head));
    }
    
    //增加边的方式
    //加入a—>b,权值l;
    int id;
    inline void AddEdge(int a,int b,int l=0){
        edge[id].to=b;
        edge[id].next=head[a]; //和下面一行将新边作为a的第一条边;
        head[a]=id;
        edge[id].len=l;
        id++;//只给edge数组开新空间用
    }
    
    //遍历从a出发的边 得到下一个点和权值
    for(int i=head[a];i!=-1;i=edge[i].next){
        //edge[i] 即为当前边
    }
    

    相关文章

      网友评论

        本文标题:图论---链式前向星

        本文链接:https://www.haomeiwen.com/subject/lmtdvqtx.html