408数据结构学习笔记——图的基本概念

简介: 408数据结构学习笔记——图的基本概念

1.图的定义

  1. 图(graph)由顶点集V(Vertex)和边集E(Edge)组成,记为G = (V,E)
  2. 图(顶点集)不能为空,但是图的边集可以为空

2.有向图

边带方向,E = <v, w>:使用<>表示,v为弧尾,w为弧头

E = {<1, 2> <2, 1> <2, 3>}

104d4e68046e422a9db15dfb9f8b8130.png

3.无向图

边不带方向,E = (v, w):使用()表示,v和w的元素可以互换

E = {(1,2) (1,3) (1,4) (2,3) (2,4) (3,4)}

79f6100ec2914232a744668d9b126e6d.png

4.简单图、多重图、完全图

  1. 不存在重复边
  2. 不存在顶点到自己的边

满足1、2条件为简单图,反之则为多重图;如果任意两个顶点之间都存在边,则为完全图,共n(n-1)/2条边gif.gif,(有向图中,则需要任意两个顶点中都存在方向相反的两条边,共n(n-1)条边gif.gif

5.顶点的度、入度和出度

无向图——度:

  1. 度为该顶点的边数
  2. 无向图的度的总数为2倍边数(2E):一条边为两个顶点的度数分别+1

有向图——入度、出度:

  1. 入度:指向该顶点的边数(终点为该顶点)记为ID(v)
  2. 出度:指出该顶点的边数(起点为该顶点)记为OD(v)
  3. 有向图中的入度=出度=边数(E):每有一条边,一个顶点的入度+1,另一个顶点的出度+1

6.路径、回路、路径长度

路径:一个顶点到另一个顶点的顶点序列

路径长度:路径上经过的边的数量

点到点的距离:如果一个顶点到另一个顶点的最短路径存在,则为两点之间的距离;如果不存在,则该距离为无穷

回路:第一个顶点和最后一个顶点相同的路径(环)

简单路径:路径中不存在重复出现的顶点

简单回路:除了第一个顶点和最后一个顶点外,回路中没有重复出现其他顶点

7.连通、强连通

无向图——连通:

  1. 两个顶点之间路径存在,则这两个顶点连通
  2. 如果整个无向图中任意两个顶点都是连通的,则为连通图
  3. n个顶点的无向图G:
  1. 若G为连通图,最少为n - 1条边
  2. 若G为非连通图,最多为gif.gif条边

有向图——强连通:

  1. 顶点a到顶点b路径存在,且顶点b到顶点a路径存在,则这两个顶点强连通
  2. 如果整个有向图中任意两个顶点都是强连通的,则为强连通图
  3. n个顶点的有向图G:若G为强连通图,最少为n条边(构成回路)

8.子图、生成子图

设有两个图G = (V, E)和G1 = (V1, E1),若V1是V的子集,E1是E的子集,则G1是G的子图;当V1和V1相等时,G1为G的生成子图(E未必相等)

9.连通分量、强连通分量

  1. 无向图中极大连通子图为连通分量:子图必须连通、且包含尽可能多的边和顶点
  2. 有向图中极大强连通子图为强连通分量:子图必须强连通、且包含尽可能多的边和顶点

10.生成树、生成森林

连通图中,包含图中全部顶点的极小连通子图:边尽可能少,但是是连通的

非连通图中,连通分量的生成树组合而成生成森林

11.边的权、带权图

边的权:边上带有某种意义的数值

带权图:边上带有权值的图

带权路径长度:一条路径上所有边的权值之和



相关文章
|
11天前
|
存储 算法
数据结构与算法学习二二:图的学习、图的概念、图的深度和广度优先遍历
这篇文章详细介绍了图的概念、表示方式以及深度优先遍历和广度优先遍历的算法实现。
27 1
数据结构与算法学习二二:图的学习、图的概念、图的深度和广度优先遍历
|
14天前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
34 1
|
19天前
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现(三)
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现
|
19天前
|
存储
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现(二)
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现
|
19天前
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现(一)
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现
|
4月前
|
存储 算法 Linux
【数据结构和算法】---二叉树(1)--树概念及结构
【数据结构和算法】---二叉树(1)--树概念及结构
45 0
|
4月前
|
存储 算法
数据结构===图
数据结构===图
|
1月前
|
存储 JSON NoSQL
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
这篇文章是关于Redis基本数据结构的学习笔记,包括了String、Hash、Set、List和SortedSet的介绍和常用命令。文章解释了每种数据结构的特点和使用场景,并通过命令示例演示了如何在Redis中操作这些数据结构。此外,还提供了一些练习示例,帮助读者更好地理解和应用这些数据结构。
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
|
13天前
|
存储 分布式计算 算法
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
28 0
|
1月前
|
C语言
数据结构基础详解(C语言):图的基本概念_无向图_有向图_子图_生成树_生成森林_完全图
本文介绍了图的基本概念,包括图的定义、无向图与有向图、简单图与多重图等,并解释了顶点度、路径、连通性等相关术语。此外还讨论了子图、生成树、带权图及几种特殊形态的图,如完全图和树等。通过这些概念,读者可以更好地理解图论的基础知识。