• (十四)数据结构-图


    图是一种较线性表和树更为复杂的数据结构,结点之间的关系可以是任意的,图中的任意两个数据元素之间都可能相关;
    线性表中,数据元素之间仅有的线性关系,每个数据元素只有一个直接前驱和一个直接后继;
    树形结构中,数据元素之间有着明显的层次关系;

    一、图的定义

    图是由顶点集V和边集E组成,记做G=(V,E)

    1. 其中V(G):顶点(数据结构)的有限非空集合;
    2. E(G)表示:边的有限集合;
    3. 若V={v1,v2,…vn},则用|V|表示图G中顶点的个数;
    4. E={(u,v),u∈V,v∈V},用|E|表示图G中边的条数;

    注意:线性表可以是空表,树可以是空树,但图不可以是空图
    图中不能一个顶点都没有,图的顶点集V一定是非空,但边集E可以为空. =>此时图中只有顶点而没有边

    二、图的基本术语

    2.1各种图的定义

    区分:弧=边,路径

    1到2有弧,2到3有弧;
    1到3有路径,但是1到3没有弧
    在这里插入图片描述

    有向图:若E是有向边(称为)的有限集合时,记为

    无向图:若E是无向边(简称)的有限集合时,记为(v,w)或(w,v)

    完全图/简单完全图: 两个顶点之间都存在边

    1. 无向完全图:n(n-1)/2条边
    2. 有向完全图:n(n-1)条弧,在有向完全图中任意两个顶点之间都存在方向相反的两条弧

    连通图:图G中任意两个顶点是连通的,反之为非连通图

    2.2连通图的相关术语

    无向图讨论连通性
    有向图讨论强连通性

    2.2.1连通性

    连通图:图G中任意两个顶点是连通的,反之为非连通图

    连通分量:无向图的极大连通子图

    注意此概念要求:

    1. 要是子图
    2. 子图要是连通的
    3. 连通子图含有极大顶点数
    4. 具有极大顶点数的连通子图包含依附于这些顶点的所有边

    图1是一个无向非连通图
    图2图3是他的两个连通分量
    图4不是图1的无向图的连通分量,因为他不满足连通子图的极大顶点数
    在这里插入图片描述
    在这里插入图片描述

    2.2.2 强连通性质

    强连通:有一对顶点v和w,从v到w和从w到v都有路径

    强连通图:图中任意一对顶点都是强连通的

    强连通分量:有向图的极大连通子图

    图1不是强连通图,A->D存在路径,但是D->A不存在
    图2是强连通图,且图2是图1的极大强连通子图=强连通分量
    在这里插入图片描述

    2.2.3 生成树

    连通图的生成树是一个极小的连通子图,他包含图中全部的n个顶点,但只有足以构成一棵树的n-1条边
    在这里插入图片描述

    2.2.3 生成森林:一个有向图由若干颗有向数构成

    图1是一颗有向图,去掉一些弧后,它可以分解成两颗有向树,则这两颗树就是图1,有向图的生成森林

    在这里插入图片描述

  • 相关阅读:
    javacc之路1--- Token Manager
    网络通信IO模型上
    Android App如何隐藏标题栏并修改状态栏样式
    【如何学习CAN总线测试】——CAN物理层测试
    简单讲解冒泡排序算法
    Unity-资源异步加载
    【尚硅谷】第05章:随堂复习与企业真题(数组)
    Web安全研究(五)
    js中的拖拽
    【11.2】【VP】Codeforces Round #727 (Div. 2)
  • 原文地址:https://blog.csdn.net/weixin_45579930/article/details/126211155