图 -- 基础



  图可以分为有向图(directed graph)和无向图(undirected graph)。

  每个顶点都临界的无向图为完全图(complete graph)。如果无向图G的顶点集V可以划分为V1,V2,是的对(u,v)属于E有u属于V1,v属于V2,则称图为二分图(bipartite graph)。

  无回路的无向图成为森林;连通的,无回路的无向图为(自由)树,也叫做有向无环图(dag)。 

  有n(n-1)/2条边的无向图称为完全图(complete graph).

  具有n(n-1)条弧的有向图称为有向完全图.

  对于有向图,e的取值范围时0 到 n(n-1).

  有很少条边的图称为稀疏图(sparse graph),有反之称为稠密图(dense graph).

有向图



  有向图G是一对(V,E),其中V是有穷集,E是V上的二元关系。V成为G的顶点集,E成为G的边集。可能存在自身环(self-loops)。

  G中一条边(u,v),称(u,v)离开(incident from/leaves)定点u,到达(incident to/ enters)定点v。

  顶点的度等于该顶点的入度(in degree)和出度(out degree)之和。出度是以其为起点的边的个数;入度是以其为终点的边的个数。

无向图



  无向图G中,边集E是由无序定点对,而非有序顶点对构成的。(u,v)和(v,u)视为同一条边。在无向图中不允许有自身环。

  G中一条边(u,v),称(u,v)关联(incident on)定点u,v,顶点u,v是相邻的(adjacent).

  在无向图中,顶点的度(degree)是与之关联的边的个数。如果一个顶点的度为0,则成为孤立的(isolated)。

  无论是有向图还是无向图, 都满足图的边数 e = 度之和/2

路径



  图G中顶点u到顶点v的路径是,以顶点u为起点,顶点v为终点的顶点的集合。路径中边的个数为路径的长度。

  如果图中包含顶点u到顶点v的路径p,则成顶点u是经过p可达(reachable)顶点v的。

  如果一个路径中所有顶点都是不同的,则成为简单路径(simple path)。

  在有向图中,如果起点与终点相同,且路径至少有一条边,则成路径(v0,...,vk)形成回路。如果回路中顶点个不相同,则为简单回路。

连通



  在无向图中,如果所有顶点都有路径相连,则成为连通图(connected)。连通分量(connected component)指的是无向图的极大连通子图。

  在有向图中,如果每对顶点都是相互可达的,则称其为强连通图(strongly connected)。有向图的极大强连通子图称做有向图的强连通分量

  

生成树



  一个连通图的生成树是一个极小的连通子图,它包含图中所有的顶点,但是只有n-1条边.

  对于有n个顶点的图,如果其边数少于n-1,则非连通;如果其边数多于n-1,则存在环;边数为n-1的不一定是生成树.

  

存储模式



  邻接矩阵:    所需空间O(V*V), 可以在O(1)的时间判断两个顶点(vertex)是否相邻.(对于稀疏图,耗费空间)

  邻接表:     所需空间O(V + E), 判断两个顶点是否相邻需要遍历相关两个链表.(缺点: 边的两个顶点在不同的链表中).

  十字链表:    所需空间O(V + E), 可以方便的计算顶点的出度和入度,寻找以某顶点为头/尾的边.(有向图)

  邻接多重表:  

遍历



  图中任何顶点都有可能和其余的顶点相邻接,在访问了某个顶点后,可能沿着某条路径又回到该顶点上.所以,需要辅助数组.

  时间复杂度:  在遍历图时,依靠辅助数组,对每个节点只会访问一次.因此,对于邻接矩阵存储的图,遍历的时间复杂度为O(V*V);对于邻接表存储的图,遍历的时间复杂度为O(V+E).

  

时间: 2024-10-18 01:30:17

图 -- 基础的相关文章

如何看K线图基础知识

在日K线图中一般白线.黄线.紫线.绿线依次分别表示:5.10.20.60日移动平均线,但这并不是固定的,会根据设置的不同而不同,比如你也可以在系统里把它们设为5.15.30.60均线. 你看K线图的上方有黄色PMA5=几的字样,就是五日均线等于几的意思.其他的有紫色的10日均线PMA10=什么的.设定的话双击数字就行!数字是几就是几日均线,颜色和线的颜色一样! 那是移动平均线,在日K线图中一般白线.黄线.紫线.绿线依次分别表示:5.10.20.60日移动平均线,但这并不是固定的,会根据设置的不同

《大话设计模式》笔记-基础知识1:UML类图基础知识

好多计算机技术书籍或者文章中常用到UML类图,本书作者介绍每一种设计模式就是用类图+面向对象语言小程序(用的C#,其基础知识另文介绍)+人物对话解释知识点.本文就是介绍<大话设计模式>中所用到UML类图的基础知识. 上图是一个整体的图,特别要注意各种样式的箭头,下文分别用局部小图说明各知识点. 类 类图分三层: (1)      类名称,如果是抽象类就用斜体标识.本例,类名称是"动物",且其是一个抽象类. (2)      类特性,通常是字段和属性.本例,类特性是"

图论讲解(1)——图基础

前面一直在哔哔数论,是不是感觉很烦的慌了?? ╮(╯▽╰)╭唉,你不烦得慌我都烦得慌了! 既然这样,那我们就改个话题,今天我们就讲讲图论. 有的同学就要问图又是个什么鬼? 难道是这个吗?                                          还是这个??? 哎呀,身为c++选手,我们肯定说的不是这些东西了对吧! 我们信息学上所说的图是指一个有序的二元组(V,E),V是顶点的集合,E是边的集合,E中的每一个元素都用一个二元组(x,y)来表示,其中x,y∈v. 这么说是不

UML图基础知识

一.UML简述 类是面向对象系统中最重要的构造块.类图显示了一组类.接口.协作以及他们之间的关系,通过类图,我们能够很好的掌握类与类之间的关系. 首先给出一幅UML类图,此图来源于<大话设计模式>,其中讲的很好,感兴趣的可以去查看.然后细细查看图中的每个符号.每个元素,思考之间的关系. 二.UML类图中包括常用的六种关系以及各自的表示形式 从上图中我们可以很明显的发现六种关系及各自如何表示, 1. 空心三角形+实线:继承关系 2. 空心三角形+虚线:实现接口 3. 空心菱形+实线箭头:聚合关系

MFC对话框贴图基础上控件Stasic变成透明的

相应WM_CTLCOLOR函数 添加以下代码: HBRUSH CMFCApplication2Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { ..... switch (pWnd->GetDlgCtrlID()) { case IDC_STATIC: { pDC->SetBkMode(TRANSPARENT); pDC->SetTextColor(RGB(0, 0, 0)); return (HBRUSH)GetStockO

关于图算法 &amp; 图分析的基础知识概览

网址:https://learning.oreilly.com/library/view/graph-algorithms-/9781492060116/ 你肯定没有读过这本书,因为这本书的发布日期是2019年5月.本文会覆盖该书的大部分内容,读完这篇,你能够了解图算法的基本概念.关于此书,作为市面上为数不多的面向数据科学应用的图算法书籍,写的比较全面系统和易懂.当然,书在细节上的提高空间还有很多.今天内容很多,坐稳~ 目录 图算法 & 图分析 图基础知识 连通图与非连通图 未加权图与加权图 有

自定义view—折线图

学习导航 第一节:http://blog.csdn.net/bobo8945510/article/details/53197727 -自定义View-自定义属性及引用 第二节:http://blog.csdn.net/bobo8945510/article/details/53203233 自定义view02-图形绘制 第三节:http://blog.csdn.net/bobo8945510/article/details/53213938 自定义View-绘图基础之Path 第四节:http

Python学习思维导图

无意间碰到的一个大神整理的Python学习思维导图,感觉对初学者理清学习思路大有裨益,非常感谢他的分享. 详情见:https://woaielf.github.io/2017/06/13/python3-all/ 14 张思维导图 基础知识 数据类型 序列 字符串 列表 & 元组 字典 & 集合 条件 & 循环 文件对象 错误 & 异常 函数 模块 面向对象编程

类图和对象图教程-类(Class)、接口(Interface)、协作(collaboration)、依赖关系(Dependency)、泛化关系(Generalization)、关联关系(Association)以及实现关系(Realization)

类图的概念 (转) 一.概述 类图(Class Diagram)是描述类.接口.协作以及它们之间关系的图,用来显示系统中各个类的静态结构.类图是定义其他图的基础,在类图基础上,可以使用状态图.协作图.组件图和配置图等进一步描述系统其他方面的特性. 类图包括7个元素:类(Class).接口(Interface).协作(collaboration).依赖关系(Dependency).泛化关系(Generalization).关联关系(Association)以及实现关系(Realization).