0101基础概念-图-数据结构和算法(Java)

1 图

1.1 定义

图是一种非线性的数据结构,表示多对多的关系。

图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V, E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。

在图中需要注意的是:

  • 线性表和树可以看做特殊的图。

  • 线性表中我们把数据元素叫元素,树中将数据元素叫结点,在图中数据元素,我们则称之为顶点(Vertex)。

  • 线性表可以没有元素,称为空表;树中可以没有节点,称为空树;但是,在图中不允许没有顶点(有穷非空性)

  • 线性表中的各元素是线性关系,树中的各元素是层次关系,而图中各顶点的关系是用边来表示(边集可以为空)。

1.2 4种图模型

  • 无向图
  • 有向图
  • 加权图
  • 加权有向图

2 无向图

2.1 定义

图是由一组顶点和一组能够将两个顶点相连的边组成。

图下图2.1-1所示:

在这里插入图片描述

顶点一般使用0至V-1来表示一张含有V个顶点的图中的各个顶点,使用数组索引作为结点很方便。我们使用v-w或者w-v表示连接v和w的边。

特殊的图:

  • 自环:一条连接一个顶点和其自身的边
  • 连接同一对顶点的两条及以上的边称为平行边

含有平行边的图称为多重图;没有平行边或自环的图称为简单图。

2.2 术语

在这里插入图片描述

  • 相邻顶点:由同一条边连接的两个顶点,称为相邻顶点,并称这条边依附于这2个顶点。

  • 度数:某个顶点的度数即为依附于这个顶点的边的总数。

  • 子图:有一幅图所以边的一个子集(以及他们所依附的所有顶点)组成的图。

  • 路径:由边顺序连接的一系列顶点。

    • 简单路径:一条没有重复顶点的路径。
  • 环:一条至少含有一条边且起点和终点相同的路径。

    • 简单环:一条(除起点和终点必须相同外)不含有重复顶点和边的环。
    • u-v-w-x-u记法表示从u到v到w在回到u到一条环。
  • 路径长度或者环的长度:路径或者边所 包含的边数。

  • 连通:当两个顶点之间存在一条连接双方的路径时,我们称一个顶点和另外一个顶点连通。

    • u-v-w-x记法表示u到x的一条路径
  • 连通图:如果从任意一顶点都存在一条路径到达另一个任意顶点,我们称这幅图是连通图。

    • 一幅非连通图由若干连通的部分组成,它们都是其极大连通子图(分量)。
  • 连通图的生成树:连通图的生成树是它的一幅子图,它含有图中的所有顶点且是一颗树。

    • 树是一幅无环连通图。互不相连的树组成的集合称为森林。
  • 图的生成树森林:图的所有连通子图上生成树的集合。

一棵树如下图所示:

在这里插入图片描述

生成树森林:

在这里插入图片描述

当且仅当一幅含有V个结点的图G满足下列5个条件之一时,它就是一棵树:

  • G有V-1条边且不含有环;

  • G有V-1条边且时连通的;

  • G是连通的,但删除任意一条边都会使它不在连通;

  • G是无环图,但添加任意一条边都会产生一条环;

  • G中任意一堆顶点之间仅存在一条简单路径。

  • 图密度:图密度是指已连接的顶点对占所有可能连接顶点对的比例。

    • 稀疏图:如果一幅图中不同边的数量在顶点总数V的一个小的常数倍以内,那么我们就称这幅图是稀疏的。
    • 稠密图:否则就是稠密图。
  • 二分图:二分图是一种能够将所有结点分为两部分的图,其中图的每条边所连接的两个顶点分别属于不同的部分。

后记

如果小伙伴什么问题或者指教,欢迎交流。

❓QQ:806797785

⭐️源代码仓库地址:https://gitee.com/gaogzhen/algorithm

参考链接:

[1][美]Robert Sedgewich,[美]Kevin Wayne著;谢路云译.算法:第4版[M].北京:人民邮电出版社,2012.10

[2]数据结构:图的基本概念

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gaog2zh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值