数据结构和算法 —— 图
图的定义
图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。
对于图的定义,需要明确几个注意的地方:
1.线性表中我们把数据元素叫元素,树中叫结点,在图中数据元素我们则称之为顶点(Vertex)。
2.线性表可以没有数据元素,称为空表,树中可以没有结点,叫做空树,而图结构在国内大部分的教材中强调顶点集合V要有穷非空。
3.线性表中,相邻的数据元素之间具有线性关系,树结构中,相邻两层的结点具有层次关系,而图结构中,任意两个顶点之间都可能有关系,顶点之间的逻辑关系用边来表示,边集可以是空的。
图的各种奇葩定义
无向边
若顶点Vi到Vj之间的边没有方向,则称这条边为无向边(Edge),用无序偶(Vi,Vj)来表示。
上图G1是一个无向图,G1={V1,E1},其中
V1={A,B,C,D},
E1={(A,B),(B,C),(C,D),(D,A),(A,C)}
有向边
若从顶点Vi到Vj的边有方向,则称这条边为有向边,也成为弧(Arc),用有序偶<Vi,Vj>来表示,Vi称为弧尾,Vj称为弧头。
上图G2是一个有向图,G2={V2,E2},其中
V2={A,B,C,D},
E2={<B,A>,<B,C>,<C,A>,<A,D>}
简单图
在图结构中,若不存在顶点到其自身的边,且同一条边不重复出现,则称这样的图为简单图。
以下两个则不属于简单图:
无向完全图
在无向图中,如果任意两个顶点之间都存在边,则称该图为无向完全图。含有n个顶点的无向完全图有n*(n-1)/2条边。
有向完全图
在有向图中,如果任意两个顶点之间都存在方向互为相反的两条弧,则称该图为有向完全图。含有n个顶点的有向完全图有n*(n-1)条边。
稀疏图和稠密图
这里的稀疏和稠密是模糊的概念,都是相对而言的,通常认为边或弧数小于n*logn(n是顶点的个数)的图称为稀疏图,反之称为稠密图。
权
有些图的边或弧带有与它相关的数字,这种与图的边或弧相关的数叫做权(Weight),带权的图通常称为网(Network)。
子图
假设有两个图G1=(V1,E1)和G2=(V2,E2),如果V2⊆V1,E2⊆E1,则称G2为G1的子图(Subgraph)。
数据结构和算法 —— 图相关推荐
- 深度搜索和广度搜索领接表实现_数据结构与算法--图的搜索(深度优先和广度优先)...
数据结构与算法--图的搜索(深度优先和广度优先) 有时候我们需要系统地检查每一个顶点或者每一条边来获取图的各种性质,为此需要从图的某个顶点出发,访遍图中其余顶点,且使得每一个顶点只被访问一次,这个过程 ...
- 数据结构与算法--图的表示与常用算法
什么是图? 图(Graph)形结构中,是一种非线性结构,在图中每一个元素都可以有0或多个前驱,也可以有多个后驱.节点之间的关系是任意的,即图中任意两个数据元素之间都有可能相关. 图的术语 顶点:带有数 ...
- Python 数据结构与算法——图(Graph)
图结构(Graph)--算法学中最强大的框架之一.树结构只是图的一种特殊情况. 如果我们可将自己的工作诠释成一个图问题的话,那么该问题至少已经接近解决方案了.而我们我们的问题实例可以用**树结构(tr ...
- js数据结构与算法 图的BFS和DFS
本文为技术学习的笔记-<Learning JavaScript Data Structures and Algorithms, Third Edition> 1.图的相关术语 图是网络结构 ...
- Python__数据结构与算法——图
图是非线性的数据结构,图是由顶点和边组成的.如果图中的顶点是有序的,那么图是有方向的,称之为有向图,如图-1所示:否则,图是无方向的,称之为无向图.在途中,由顶点组成的序列称之为路径. 图和树相比,少 ...
- 计算机基础知识数据结构与算法,(计算机基础知识)[数据结构与算法] 图
第六章 图 6.1 图的定义和基本术语 图: G=(V,E) Graph = (Vertex, Edge) V: 顶点(数据元素)的有穷非空集合 E: 边的有穷集合 完全图: 任意两个点都有一条边相连 ...
- c++ 遍历所有点且距离最短_编程小白暑期进阶笔记41-C语言数据结构与算法图遍历的应用...
基于广度优先遍历算法的应用 思考题: (思考题答案: BFS(广度优先遍历)在一般的带权图中是不能解决最短路问题,了解BFS的都知道,BFS是根据节点到源节点之间的节点数遍历的,也就是先访问离源节点节 ...
- c++数据结构与算法 图
图的定义: 图:用线或者边连接在一起的节点集合.G=(V,E) 当且仅当(i,j)是图的边,则称节点i,j是邻接的. 有向图和无向图: 加权图: 一条路径,如果除第一个和最后一个节点之外,其他节点各不 ...
- java数据结构和算法——图的深度优先(DFS)遍历
目录 一.图的遍历介绍 二.图的深度优先搜索(Depth First Search) 三.图的深度优先遍历算法步骤 四.图的深度优先遍历示例需求 五.图的深度优先遍历代码示例 一.图的遍历介绍 所谓图 ...
- java数据结构和算法——图的广度优先(BFS)遍历
目录 一.图的遍历介绍 二.图的广度优先搜索(Broad First Search) 三.图的广度优先遍历算法步骤 四.图的广度优先遍历示例需求 五.图的广度优先遍历代码示例 一.图的遍历介绍 所谓图 ...
最新文章
- JavaCore/HeapDump文件及其分析方法
- 操作集锦【牛客网】 牛客练习赛60
- stdout字符串过滤输出
- LeetCode题——最长无重复子串
- python --动态类型
- 协创物联网合肥产业园项目远程预付费电能管理系统的设计与应用
- Power BI Desktop 中的数据源
- 金蝶系统无法建立数据可连接服务器,金蝶K3打开,提示无法建立数据链接
- 编程c语言经验,C语言编程学习经验3篇
- 通过经纬度获取地理位置
- 面试官;经典面试题-JVM篇
- va_list原理及用法
- 学徒浅析Android——Android7.0(N)对于自定义证书和非CA机构证书的适配校验
- 报Warning如下: Warning: The CUDA driver must recompile the GPU librariesbecause your device is more rec
- 车子前进档为什么往后退_为什么绝大部分自动挡汽车档把设计,往前是后退、往后是前进?...
- SQL99中的natural join 和 using
- 表格批量导入金蝶专业版销售订单
- 【PIG】pig4cloud整合 knife4j
- 光盘修复计算机加载驱动,如何解决在Windows中无法使用光盘驱动器的问题
- javascript --- 设计模式之构造函数模式
热门文章
- 关于eclipse里启动Tomcat访问不到8080页面的问题
- meta name id class 标签的区别
- vijos 1067 Warcraft III 守望者的烦恼 矩阵
- HttpClient的释放问题
- Linux 下安装 Oracle9i
- 计算机中心述职报告诉,计算中心述职报告
- python定义构造函数、包括颜色价格品牌_《Python编程与算法基础教程》(第二版),蒋洪宇,青松,第9章:课后练习,程序设计,版江红余,第九章,习题,答案...
- python open文件安全隐患_python的其他安全隐患
- python开发windows界面_python适合windows的桌面应用程序开发吗?
- java委托事件与观察者模式_多播委托与观察者模式联合使用,以及委托与事件的区别...