非本人允许请勿转载。

趁热打铁,学会了邻接表把这个总结一下,以及感谢大佬uncle-lu!!!(奶一波)祝早日进队!

首先,图论入门就得是非常基础的东西,先考虑怎么把这个图读进去。

给定一个无向图,如下

怎么把这个图的数据读入进去呢?

把这个图剖析开来看,1连着的是2和3,2连着4和5,3连着6和7,4连着5,5连着8和6,6连着9。

所以这个图可以用一种神奇的东西————邻接矩阵来存。如下,能联通的制为1,不能联通的制为0。

那么可以看出来,这个邻接矩阵光读入的时间复杂度就是O(N2)的了,在有些情况下就会非常的浪费时间和空间,不利于这个身心健康发展啊。

所以就有了邻接表这个东西,邻接表邻接表,也就是边表,他存的是边而非其他gaygay的东西。这个邻接表是有两种存边的方法,一种是用链表来维护,把要存的边存在链表里,第二种是用数组模拟链表来维护,比链表要更加好理解一些???

纯手制链表,与该图相符,如果是带权值的可以再加一行。但是这里就看出来了这个链表的弊端,对于无向图也会出现一些奇奇怪怪的事情,像多次重复出现某个值。

那么这是链表版的邻接表,那么这个数组版的就如下。

U数组就是起点,V就是终点,这个图是无向图,就人为省略了那些重复的东西。

所以邻接矩阵和邻接表的代码如下:

临接矩阵:

 #include<bits/stdc++.h>
 ][];
 int main()
 {
      int n , m , x , y;
      scanf("%d%d",&m,&n);
      ;i<=n;++i)
        {
             ;j<=n;++j)
              {
                    cin >> x >> y ;
                    edge[x][y]=w;
              }
         }
 //  printf("linjiejuzhenduwanle happly");
      ;
 }

临接表:

 #include<bits/stdc++.h>
 struct node
 {
     int v , next ;
 }edge[];
 ],cnt;
 void add_edge(int x , int y )
 {
     edge[++cnt].v  = x ;
     edge[cnt].next = head[x];
     head[x] = cnt ;
     return ;
 }
 int main()
 {
     int n , m;
     scanf("%d%d",&n,&m);
     int x , y ;
      ; i < m ; i ++)
         {
             scanf("%d%d",&x,&y);
             add_edge(x,y);
         }
 //    printf("linjiebiaowanleduwanle happly");
      ;
  } 

那么就开始令(丧)人(心)愉(病)快(狂)的图论题吧,啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈。

//你哈个辣子啊你。

还有158天初赛, 还有186天复赛。

那是我愿意付诸一生的人,现在却没法拥有。

<图论入门>邻接矩阵+邻接表的更多相关文章

  1. HDU 1874 畅通工程续(最短路/spfa Dijkstra 邻接矩阵+邻接表)

    题目链接: 传送门 畅通工程续 Time Limit: 1000MS     Memory Limit: 65536K Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路. ...

  2. 数据结构学习笔记05图 (邻接矩阵 邻接表-->BFS DFS、最短路径)

    数据结构之图 图(Graph) 包含 一组顶点:通常用V (Vertex) 表示顶点集合 一组边:通常用E (Edge) 表示边的集合 边是顶点对:(v, w) ∈E ,其中v, w ∈ V 有向边& ...

  3. hdu 1874 畅通工程(spfa 邻接矩阵 邻接表)

    题目链接 畅通工程,可以用dijkstra算法实现. 听说spfa很好用,来水一发 邻接矩阵实现: #include <stdio.h> #include <algorithm> ...

  4. 第6章 图的学习总结(邻接矩阵&邻接表)

    我觉得图这一章的学习内容更有难度,其实图可以说是树结构更为普通的表现形式,它的每个元素都可以与多个元素之间相关联,所以结构比树更复杂,然而越复杂的数据结构在现实中用途就越大了,功能与用途密切联系,所以 ...

  5. 数据结构之 图论---bfs(邻接表)

    数据结构实验之图论二:基于邻接表的广度优先搜索遍历 Time Limit: 1000MS Memory limit: 65536K 题目描述 给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索( ...

  6. 网络流三大算法【邻接矩阵+邻接表】POJ1273

    网络流的基本概念跟算法原理我是在以下两篇博客里看懂的,写的非常好. http://www.cnblogs.com/ZJUT-jiangnan/p/3632525.html http://www.cnb ...

  7. 图的全部实现(邻接矩阵 邻接表 BFS DFS 最小生成树 最短路径等)

    1 /** 2 * C: Dijkstra算法获取最短路径(邻接矩阵) 3 * 6 */ 7 8 #include <stdio.h> 9 #include <stdlib.h> ...

  8. 图论——最小生成树prim+邻接表+堆优化

    今天学长对比了最小生成树最快速的求法不管是稠密图还是稀疏图,prim+邻接表+堆优化都能得到一个很不错的速度,所以参考学长的代码打出了下列代码,make_pair还不是很会,大体理解的意思是可以同时绑 ...

  9. 图结构练习——判断给定图是否存在合法拓扑序列(dfs算法(第一个代码),邻接矩阵(前两个代码),邻接表(第三个代码))

    sdut 2140 图结构练习——判断给定图是否存在合法拓扑序列 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述  给定一个有向图 ...

随机推荐

  1. DLL:无法解析的外部符号 "__declspec(dllimport)

    (4.10)碰到问题:MFC规则DLL(静态库1)中,AFX_EXT_CLASS导出类及类的对象.在静态库2中使用.出现两个问题:  (1) 静态库1中警告:dll链接不一致;  (2) 静态库2中报 ...

  2. 初见 ThreadLocal 类

    这个类能够将一个对象和一个线程绑定起来. 之所以写这个类是因为 DBUtils 工具类,在 JavaEE 经典三层结构中对于事务的操作,不方便放在 DAO 层,因为具有侵入性,只适合放在 Servic ...

  3. 在React中使用CSS Modules设置样式

    最近,一直在看React...那真的是一个一直在学的过程啊,从配置环境webpack,到基础知识jsx,babel,es6,没有一个不是之前没有接触的.其实,我内心是兴奋的啊,毕竟,活着就是要接触一些 ...

  4. node.js平台下,利用cookie实现记住密码登陆(Express+Ejs+Mysql)

    本博文需有node.js+express+mysql入门基础,若基础薄弱,可参考博主的其他几篇node.就是博文: 1.下载Mysql数据库,安装并配置 创建用户表供登录使用: 2.node.js平台 ...

  5. lucene原理及源码解析--核心类

    马云说:大家还没搞清PC时代的时候,移动互联网来了,还没搞清移动互联网的时候,大数据时代来了. 然而,我看到的是:在PC时代搞PC的,移动互联网时代搞移动互联网的,大数据时代搞大数据的,都是同一伙儿人 ...

  6. post和get请求的区别

    post和get请求的区别: 1.post发送的数据在请求体中,用户看不到 get发送的数据在地址栏中 2.post请求中有content-type,作用是告诉服务器,发送给服务器的数据格式,是和ur ...

  7. iframe 自适应内容高度

    在使用iframe的时候,会出现iframe不能随着内容的高度自动改变的情况,下面就介绍一种可以自适应高度的办法.<br/> <pre> <iframe id=" ...

  8. 老李推荐:第4章1节《MonkeyRunner源码剖析》ADB协议及服务: ADB协议概览 1

    老李推荐:第4章1节<MonkeyRunner源码剖析>ADB协议及服务: ADB协议概览   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试, ...

  9. 老李秘技:loadrunner11.5支持net4.0么?

    老李秘技:loadrunner11.5支持net4.0么?   LoadRunner12.0以前的版本不支持.NET 4.0,已经证实R&D团队将在下一版本的LoadRunner即LoadRu ...

  10. 老李分享:Android性能优化之内存泄漏1

    老李分享:Android性能优化之内存泄漏   前言 对于内存泄漏,我想大家在开发中肯定都遇到过,只不过内存泄漏对我们来说并不是可见的,因为它是在堆中活动,而要想检测程序中是否有内存泄漏的产生,通常我 ...