zoukankan      html  css  js  c++  java
  • 向前星

    //前向星
    #define N_node 1000 //点的个数
    #define N_edge 5000 //边的条数

    typedef struct           //节点信息
    {                   
         int to ,next;        //to 点,next E中下标信息
         int cost;            //当前边的权值
    }STAR;

    STAR E[N_edge];          //节点信息数组
    int list[N_node];        //记录该点所连接的一系列点中的一个的E数组下标
    int tot;                 //记录当前E数组已经用到下标几了

    void add(int a ,int b ,int c)   //添加一条a 到 b 的权值为c的边
    {
         E[++tot].to = b;       //创建出当前节点b     
         E[tot].cost = c;       //到达当前节点的权值
         E[tot].next = list[a]; //把当前节点插入到与a相连的所有点的最前方
         list[a] = tot;         //节点a指向新加的,也就是插入到最前方的这个点
    }

    //存边之前记得把list数组清空,还有把list数组当前所有下标赋值成1
    memset(list ,0 ,sizeof(list));
    tot = 1;

    //遍历,输出点a所连接的所有点b

    for(int k = list[a] ;k ;k = E[k].next) //从头开始一个一个的遍历与点a相连的所有点
    {
         int b = E[k].to;
         printf("%d " ,b);
    }


     

  • 相关阅读:
    jQuery的优点——(一)
    js学习之函数表达式及闭包
    js的面向对象的程序设计之理解继承
    js之引用类型
    js的基本概念详解
    有关js的变量、作用域和内存问题
    js和HTML结合(补充知识:如何防止文件缓存的js代码)
    富豪凯匹配串
    2018 ccpc final
    蒟蒻的个人第一篇博客
  • 原文地址:https://www.cnblogs.com/ouyang_wsgwz/p/6666560.html
Copyright © 2011-2022 走看看