据说是最高效的邻接表....
别误会,小人只是个渣,这里不自量力下,昨天刚向老蔡学的,给出我的理解
先给出数据结构
struct EDGE{   int next;    int to;   int dist;}mat[3*maxn];int head[maxn]; 

next     这个.........不好表达,先说下面的

to 很显然,给出一条边,to就是边的终点
dist 就是这条边的权值
好的,还是说下我对next的理解吧
实际上是这样的,一般题目都会让你输入一堆边,那么这些边里免不了会有由同个起点引出的边,显然我们的边肯定是按输入顺序写在结构体里的,那么比如先输入了 1  5  7,意思是从1到5有一条边,长度是7 ,再输入 1  6  4,意思是从1到6有一条边,长度是4,这样的话,对于后一条边,他的mat[num].next就要指向离他最近的(前一个)有着同起点的边的下标,比如 mat[1].to=5.mat[1].dist=7,mat[1].next=-1  那么 mat[2].to=6,mat[2].dist=4,mat[2].next=1;
呼~~果然不是省油的灯,所谓的精华版邻接表
擦,还有个head数组没讲~~~~→→
head 数组,是用来指向最新的有着同起点的那条边的下标
比如前面的例子,那么起先全部初始化为-1(不是-1也可以,只要不会与你要用的重复就好了) ,head[1]先等于1,因为这是第一条边,也是最新的一条,但是接下来,head[1]要更新为2;
终于把这个解释好了
不过昨天有小伙伴问我,起点是怎么存的
我来说明下,head数组的下标就是你的起点,正因为有了这个数组,所以我们不需要关注起点,他可以飞快的帮我们找到
为了方便理解,我放点图上去

起点

终点

边权

1

3

7

2

3

6

1

4

5

3

5

1

2

7

11

4

5

7

3

4

6

2

4

5

1

2

7

下标

1

2

3

4

5

6

7

8

9

to

3

3

4

5

7

5

4

4

2

dist

7

6

5

1

11

7

6

5

7

next

-1

-1

1

-1

2

-1

4

5

3

下标

1

2

3

4

5

6

7

8

9

head

1->3->9

2->5->8

4->7

-1

-1

-1

-1

-1

-1

实际上head只需要根据点的数量来选择数组的大小

一般mat数组的大小为head的3-4倍

哦~对了,那么上述过程如何实现呢,附上一小段代码
struct EDGE{    int next; int to;   int dist;}mat[3*maxn];

int head[maxn];int edgenum;

void addedge(int s,int t,int dis){ mat[edgenum].to=t;   mat[edgenum].dist=dis;   mat[edgenum].next=head[s];  //这条和下一条的代码千万不能反,否则就连不起来了 head[s]=edgenum++;}

恩,我相信你们会懂的

~~~~~屌丝飘过

2014年04月27日相关推荐

  1. 王晋康 - 替天行道 ▪ 王晋康科幻小说精选集2(2014年3月27日)

    <替天行道 ▪ 王晋康科幻小说精选集2> 作 者:王晋康 译 者: 系 列:王晋康科幻小说精选集 出 版:时代文艺出版社 字 数:212千字 阅读完成:2014年3月27日 转载于:htt ...

  2. 1卢布等于多少人民币(2014年04月23日)

    100万泰铢等于多少人民币,一泰国铢换多少人民币(2014年04月22日)络特网行情中心每日更新. 一泰国铢换多少人民币(2014年04月22日)每日更新 货币名称 比率 更新时间 泰国铢兑人民币 0 ...

  3. 千寻浏览器 1.0 Beta 1(524)(2014年5月27日)

    千寻浏览器--又一款新生浏览器今天进入各位浏览迷的视野.千寻浏览器基于IE内核,据传是由百度浏览器的上海团队操刀,在功能定位上,与目前的QQ浏览器有些相似. 千寻来自官方的解释:寻,追寻,探索,又是古 ...

  4. 时间:2014年3月27日20:08:01网站建表实战与优化意识

    建表: SNS社交网站: 会员表:member Mysql中没有布尔型,相当于tinyint类型 false 就是0 其他都是true 大小 字节 列名称 列类型 默认值 是否主键 4 编号id in ...

  5. 2014年04月26日

    盘点全球十大最美书店 自古以来,书墨与情调似乎就是不可分割的聚合体,而近日由英国BBC网站挑选出来的全球十家最美书店也再次印证了这一点.对于一座城市来说,书店是人们精神的寄托,是不可或缺的生活方式,更 ...

  6. 计科1111-1114班第三周讲义、课外作业(截止日期:2014年3月27日23点-周四晚,学委飞信通知同学)

    第三周,我们主要探讨了 哈希算法 与 分治法.分治法是一个通用的算法框架,很多我们日常生活中接触到的算法都可以归类到分治法中. 本周重点 1. 哈希算法及其应用--MD5.大家应该明白哈希算法的主要三 ...

  7. 时间:2014年3月27日文件和目录操作函数

    主要内容: 目录操作:打开.读取.关闭.创建.重命名.删除 文件操作:打开.读.写.关闭.重命名.删除 信息获取函数 filemtime() filesize() file_exists()  is_ ...

  8. mysql预处理 更新_MySQL 预处理方法更新删除-2018年04月27日00时59分

    1.预处理技术,可以将动态变量,从SQL语句中的分离出来,单独操作 2.解决了SQL注入的安全问题 3.预处理操作是通过一个叫预处理对象的工具来操作的: STMT 实例--删除 // 连接数据库 re ...

  9. 2014年10月27日

    流行语抹杀我们的个人特质 网络.春晚.电影.电视等媒体,都是制造流行语言的工厂.那些石破天惊的句子或者词语,从一开始就注定被千万人重复使用的命运.它们和使用者一起,为平静的生活增添了不少的乐趣与色彩. ...

最新文章

  1. oracle取得表中总记录数最快的方法
  2. 中科院遗传发育所发表“重组菌群体系在根系微生物组研究中应用”的重要综述...
  3. linux zip 命令详解
  4. PHP中使用include、require、include_once、require_once的区别
  5. arm-linux-gcc静态编译和动态编译的区别
  6. java j2ssh替代jsch,jsch设置ssh协商算法优先级
  7. postman插件下载、安装教程
  8. Android开发中的logcat工具使用方法
  9. 作品拍卖价碾压毕加索,没有灵魂的 AI 灵魂画手有怎样的未来?
  10. 如何防范和应对Redis勒索,腾讯云教你出招
  11. 354. 俄罗斯套娃信封问题--(每日一难phase2--day9)
  12. harmonyOS hdc配置以及自动签名
  13. 硬件设计--DC/DC电源芯片详解
  14. k8s教程(基础篇)-基本概念和术语
  15. 金戒指用计算机怎么算,大姐拿来一个金戒指,先卖后当有蹊跷,鉴定后发现有问题,假的...
  16. windows镜像文件官方下载地址
  17. 倍福--运动中修改速度
  18. error: src refspec dev does not match any.
  19. 分金问题 返回分割的最小代价 (贪心算法)
  20. C语言中fseek函数

热门文章

  1. HTML链接标签详解,很简单
  2. RxJava+Retrofit使用,详细解说
  3. S - 简单密码破解
  4. c语言实现五子棋(真人对战+人机大战)
  5. ETL调度工具中美PK ( TASKCTL VS Control-M)
  6. 根据后端接口文档写前端参数
  7. Java实现大数乘法_Java实现大整数乘法
  8. 【Golang实现】B站点赞功能的思考与简单实现
  9. 整理下自行做过的小项目
  10. 建议收藏,轻松搞懂区块链