数据结构-王道2017-第5章 图

1.图的基本概念

1)图的定义

图G由顶点集V和边集E组成,记为G=(V,E),其中V(G)表示图G中定点的有限非空集;E(G)表示图G中顶点之间的关系(边)集合。V={v1,v2,..,vn},用|V|表示图G中顶点的个数,也称为图G的阶,E={(u,v)| u ∈ V,v ∈ V},用|E|表示图G中边的条数。

注意:线性表可以是空表,树可以是空树,但图不可一世空图。就是说图中不能一个顶点也没有,图的顶点集一定非空,但边集E可以为空,此时图中只有顶点没有边

2)简单图:不存在重复边;不存在顶点到自身的边,则称图G为简单图

多重图:图G中两个结点之间的边数多于一条,又允许顶点通过同一条边与自己关联,则G为多重图。多重图的定义和简单图是相对的。

完全图:在无向图中,如果任意两个顶点之间都存在边,则称该图为无向完全图,含有n个顶点的无向完全图又n(n-1)/2条边,含有n个顶点的有向完全图有n(n-1)条有向边

3)连通:在无向图中,若从顶点v到顶点w有路径存在,则称v和w是连通的,若图G中任意两个顶点都是连通的,则称图G为连通图,否则称为非连通图

无向图中的极大连通子图称为连通分量,如果一个图有n个顶点,并且有小于n-1条边,那么此图必是非连通图。

注意:极大连通子图要求该连通子图包含其所有的边;极小连通子图是既要保持图连通,又要使得边数最少的子图。

4)强连通图、强连通分量

有向图中,若从顶点v到顶点w和从顶点w到顶点v之间都有路径,则称这两个顶点是强连通的。若图中任何一对顶点都是强连通的,则称该图为强连通图。有向图的极大强连通子图称为有向图的强连通分量。

5)生成树、生成森林

连通图的生成树是包含图中全部顶点的一个极小连通子图。如果图中定点数为n,则它的生成树含有n-1条边。对于生成树而言,看去他的一条边,则会变成非连通图,若加上一条边则会形成回路。在非连通图中,连通分量的生成树构成了非连通图的生成森林。

注意:包含无向图中全部顶点的极小连通子图,只有生成树满足条件,因为砍去生成树的任意一条边,图将不再连通。

6)定点的度、入度出度

每个顶点的度定义为以该顶点为一个端点的边的数目

对于无向图,顶点v的度是指依附于该顶点的边的条数,记为TD(v);无向图的全部顶点的度之和等于边数的两倍,这是因为每条边和两个顶点相关联。

对于有向图,顶点v的度分为入度和出度,入度是以顶点v为终点的有向边的数目,记为ID(v),出度是以顶点v为起点的有向边的数目,记为OD(v),顶点v的度等于出度和入度之和TD(v) = ID(v) +OD(v);

有向图的出度和入度之和相等并且等于边数。

7)边的权和网

在一个图中,每条边都可以标上具有某种含义的值,该数值称为该边的权值。这种边上带权值的图称为带权图,也称为

时间: 2024-12-17 15:42:18

数据结构-王道2017-第5章 图的相关文章

数据结构导论之第五章图

一.图的概念 图的定义 1.图 在树形结构中,结点间具有层次关系,每一层结点只能和上一层中的至多一个结点相关, 但可能和下一层的多个结点相关.而在图结构中,任意两个结点之间都可能相关,即结点之 间的邻接关系可以是任意的图G:是由集合V和E组成,记成G=(V,E): V 是顶点集(非空):E 是边集 (可空);边是顶点的有序对或无序对;(边反映了两顶点之间的关系) 2.有向图 :边是顶点的有序对的图(图中每条边都用箭头指明了方向)一个具有 n 个顶点的有向完全图的弧 数为 n(n-1)3.无向图

数据结构——第四章图:01图相关定义

1.图的定义:图是一种网状数据结构,形式化定义如下:图Graph = (V, R),V = {x | x ∈ DataObject},R = {VR},VR = {<x, y> | P(x, y) ∧ (x, y ∈ V)}.集合DataObject中的所有元素具有相同的特性.V中的数据元素通常为顶点(vertex),VR是两个顶点之间关系的集合,P(x, y)表示x和y之间有特定的关系属性P. (1)若<x, y> ∈ VR,则<x, y>表示从顶点x到顶点y的一条弧

数据结构 第6章 图 单元小结

弄清楚图 本章重点 1.邻接矩阵:表示顶点之间相邻关系的矩阵 邻接矩阵表示法的特点: 优点:容易实现图的操作,如:求某顶点的度.判断顶点之间是否有边.找顶点的邻接点等等. 缺点:n个顶点需要n*n个单元存储边; 空间效率为O(n2).对稀疏图而言尤其浪费空间. 2.邻接表 (1)图的链式存储结构 (2)图的邻接表存储表示 1 #define MVNum 100//最大顶点数 2 3 typedef struct ArcNode//边结点 4 5 { 6 7 int adjvex;//该边所指向的

数据结构学习之第7章 树和二叉树

数据结构学习之第7章 树和二叉树 0x7.1.1 树的基本概念 ?1.树的定义 ? 树是由n(n>=0)个结点(或元素)组成的有限集合(记为T) ? 如果n>0,这n个结点中有且仅有一个结点作为树的根结点,简称为根,其余结点可分为m(m>=0)个互不相交的有限集\[T_{1}T_{2}\cdots T_{m}\],其中每个子集又是一棵符合定义的子树,称为根结点的子树. 知识点:由树的定义我们可以看出来树的结构是递归的 ?2.树的逻辑表示法 ? 1.树形表示法 ? 2.文氏图表示法 ? 3

离散数学--第6章 图

第6章 图• 6.1 图的基本概念• 6.2 图的连通性• 6.3 图的矩阵表示• 6.4 几种特殊的图 6.1 图的基本概念• 6.1.1 无向图与有向图• 6.1.2 顶点的度数与握手定理• 6.1.3 简单图.完全图.正则图.圈图.轮图.方体图• 6.1.4 子图.补图• 6.1.5 图的同构 握手定理 定理6.1 任何图(无向图和有向图)的所有顶点度数之和都等于边数的2倍. 证 图中每条边(包括环)均有两个端点, 所以在计算各顶点度数之和时, 每条边均提供2度, m条边共提供2m度. 推

数据结构期末复习第五章数组和广义表

数据结构期末复习第五章 数组和广义表 二维数组A[m][n]按行优先 寻址计算方法,每个数组元素占据d 个地址单元.     设数组的基址为LOC(a11) :LOC(aij)=LOC(a11)+((i-1)*n+j-1)*d     设数组的基址为LOC(a00) :LOC(aij)=LOC(a00)+( i*n+j )*d    二维数组A[m][n]按列优先 寻址计算方法,每个数组元素占据d 个地址单元.     设数组的基址为LOC(a11) :LOC(aij)=LOC(a11)+((j

数据结构——线性表(第二章)

一.基本概念 1.线性表:简称表,是n(n>=0)个具有相同类型的数据元素的有限序列,线性表中数据元素的个数称为线性表的长度.长度为零时称为空表. 2.线性表的顺序存储结构称为顺序表. 3.单链表:单链表是一组任意的存储单元存放线性表的位置,这组存储单元可以连续也可以不连续,甚至可以零散分布在内存中的任意位置. 下面着重介绍有关单链表的操作: #include<iostream> using namespace std; const int maxsize = 10; // 定义单链表的

《大话数据结构》笔记(7-3)--图:图的遍历

第七章   图 图的遍历 从图中某一个顶点出发访遍图中其余顶点,且使每一个顶点仅被访问一次,这一过程就叫做图的遍历(Traversing Graph). 深度优先遍历(Depth First Search, DFS)  深度优先遍历(类似树的前序遍历)从图中某个顶点 v 出发,访问此顶点,然后从 v 的未被访问的邻接点出发深度优先遍历图,直至图中所有和 v 有路径相通的顶点都被访问到.若图中尚有顶点未被访问,则另选图中一个未曾被访问的顶点作为起点,重复上述过程,直至图中所有顶点都被访问为止. 如

《大话数据结构》笔记(7-2)--图:存储结构

第七章  图 图的存储结构 图不能用简单的顺序存储结构来表示. 而多重链表的方式,即以一个数据域和多个指针域组成的结点表示图中的一个顶点,尽管可以实现图结构,但是会有问题,比如若各个顶点的度数相差很大,按度数最大的顶点设计结点结构会造成很多存储单元的浪费,而若按每个顶点自己的度数设计不同的顶点结构,又带来操作的不便. 对于图来说,如何对它实现物理存储是个难题.图有以下五种不同的存储结构. 邻接矩阵 图的邻接矩阵(Adjacency Matrix)存储方式使用过两个数组来表示图.一个一维数组存储图

数据结构与算法分析-第3章

.title { text-align: center; margin-bottom: .2em } .subtitle { text-align: center; font-size: medium; font-weight: bold; margin-top: 0 } .todo { font-family: monospace; color: red } .done { font-family: monospace; color: green } .priority { font-fami