图的种类及储存方式

一.图的种类(以下的分类不是并列的)

1.有向图:图中边的方向是一定的,不能逆序走。

2.无向图:图中的边没有方向,可以逆序走。没有正负方向

3.完全图:完全图:对于顶中的每一个顶点,都与其他的点有边直接相连

无向完全图:编辑任意一个具有n个结点的无向简单图,其边数小于等于n*(n-1)/2;我们把边数恰好等于n*(n-1)/2的n个结点的无向图称为完全图。

有向完全图:在一个n个结点的有向图中,最大边数为n*(n-1)。

4.稀疏图和稠密图:一般的对于一个图来说,边的数目多的就是稠密图,边的数目少的就是稀疏图。

5.二部图与完全二部图(二部图也就是二分图)

二分图的概念:简而言之,就是顶点集V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集,两个子集内的顶点不相邻。

两个子集:A,B;

性质满足:A∩B=∅,A∪B=V,这就是二分图。

6.图的生成树:把图中的n个点,和图中的n-1条边挑出来,如果这n-1条边能把这n个点连起来,那这就是图的一个生成树

7.有向网,无向网:网就是加权的图

二:  图的存储表示

1. 邻接矩阵

也就是用jz[i][j]表示i--j的连通情况,可以表示权值,也可以表示是否连通。

2.邻接表:就是把同一个顶点出发的边的链接储存在同一个边链表中,边链表的每一个结点代表一条边,称为边结点,边结点包括的信息可以自己确定。

一种方法:g[i][j]代表从i出发的第j条边的编号,对应着edge数组中的储存着边的信息,可以直接从g[i]得到从i出发的边的数目。

另一种就是边表了。

3.边表:就不介绍了,因为一直以来我都是用“邻接矩阵”和“边表”的,比较熟悉

时间: 2024-11-07 20:38:19

图的种类及储存方式的相关文章

图的3种储存方式

图的储存方式有三种 一.邻接矩阵 优点:简洁明了,调用方便,简单易写: 缺点:内存占用大,而且没办法存重边(可能可以,但我不会),点的个数超过 3000 直接爆炸 适用范围:点的个数少,稠密图,一般结合floyed使用,可以传递闭包. 代码: scanf("%d%d",&u,&v,&w); a[u][v]=w; a[v][u]=w;// 双向边 二.邻接表 优点:占用空间小,可以快速查找每个点的出度,重边可以存,写着较为方便 缺点:查找和删除边很不方便,对于无向

关系型数据库与HBase的数据储存方式区别

如今Bigtable型(列族)数据库应用越来越广,功能也很强大.但是很多人还是把它当做关系型数据库在使用,用原来关系型数据库的思维建表.存储.查询.本文以hbase举例讲述数据模式的变化. 传统关系型数据库(mysql,oracle)数据存储方式主要如下: 图一 上图是个很典型的数据储存方式,我把每条记录分成3部分:主键.记录属性.索引字段.我们会对索引字段建立索引,达到二级索引的效果. 但是随着业务的发展,查询条件越来越复杂,需要更多的索引字段,且很多值都不存在,如下图: 图二 上图是6个索

PHP中的Session储存方式优化

1:查看当前PHP版本中Seesion支持的储存方式   可以看出当前Session支持的储存方式有以下几种 files:文件模式,PHP默认的储存方式,把储存的值放在服务器的指定目录里 user:用户模式,暂时不了解 redis:支持redis储存.通过上面的图,可以看出当前session是redis储存,并指定了连接信息 memcache:支持memcache储存 2:redis|memcache储存的配置方式(支持redis|memcache拓展) 一:php.ini配置(推荐) sess

浏览器本地储存方式有哪些?cookie、localStorage、sessionStorage

现阶段,浏览器提供的储存方式常用的有三种,cookie.localStorage.sessionStorage 1.cookie 概念:cookie 是浏览器中用于保存少量信息的一个对象 基本特征: 1)以域名为单位的,每个网站的cookie都保存在此网站的域名下,当下一次访问该网站的时候,就可以通过cookie访问保存的消息 2)每个浏览器保存cookie的位置不同,都保存在浏览器内部,可以通过相应的操作查看 3)每个浏览器保存cookie的数量限制不同,一般每个网站下不大于50个,不大于4k

wemall app商城源码Android数据的SharedPreferences储存方式

wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android数据的SharedPreferences储存方式,供技术员参考学习.        SharedPreferences:除了SQLite数据库外,SharedPreferences也是一种轻型的数据储存方式,它的本质是基于XML文件存储key-value键值对数据,通常用来储存一些简单的配置信息.Sha

Android下的数据储存方式(三)

  Android下最好的数据储存方式:关系型数据库sqlite.   数据库的创建:使用SqliteOpenHelper类 结合SqliteOpenHelper类和SQLiteDatabase类的帮助,我们可以方便地对数据库进行CURD操作.   数据库的创建: 我们主要通过在SqliteOpenHelper类的onCreate方法中创建数据库表. 那么,onCreate方法又是在什么时候执行的呢? 我们先写一下代码: package com.whathecode.db; import and

Android下的数据储存方式( 二)

  在上一篇文章中我们介绍了SharedPreferences的使用方法. 今天我们继续介绍另一种储存数据的方式:使用内部储存和外部储存   每一个Android设备都拥有两个数据储存区域:外部储存和外部储存 那么我们应该采用哪种储存方式呢? 我们先对比一下这两种储存方式的不同: 内部储存: 总是可用的 保存在这里的文件只能被你的app访问 当程序被卸载的时候,系统会删除所有属于该应用的文件 当你不希望你的文件被其他人或应用访问到的时候,内部储存是最好的选择 外部储存: 当sd卡被用户卸载的时候

Python与C储存方式的区别

在Alex视频课程中得知Python中: a=2 b=a a=3 该过程中的内存储存方式为: 1.先再内存中开栈存储2这个数据的空间 2.a指向数据为2的内存空间地址 3.b=a 此时b指向2的内存空间的地址 4.a=3 内存中开栈存储3这个数据的空间 5.此时a=3中,a重新指向数据为3的内存地址 总结:Python是动态语言,变量只是对象的引用 并在VC中作简单的测试 int i=1; int y=i; i=2; 在调试过程中得知 int i=1;            mov     dw

quartz储存方式之JDBC JobStoreTX

这篇单单记录一下个人配置使用quartz的JDBC JobStoreTX的过程以及其中遇到的问题,这里的quartz是version2.2.1,数据库使用的MySQL. JDBCJobStore储存是速度比较慢的,但是也不至于很坏,通过JDBCJobStore储存于数据库的方式适用于Oracle,PostgreSQL, mysql, MS SQLServer, HSQLDB, DB2等数据库. 1) 建表 在下载的文件的docs/dbTables目录下有对应建表语句,如果没有对应于应用的就自己改