数据结构与算法——图(学习笔记)

1. 基本概念

图(Graph)是由若干给定的顶点及连接两顶点的边所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系。顶点用于代表事物,连接两顶点的边则用于表示两个事物间具有这种关系。

2. 结构

图中只包含两种类型的元素:顶点(vertex)和边(edge),所以图可以由顶点集合和边集合进行表示,即: G = ( V , E ) G = (V, E) G=(V,E)。根据边是否具有方向,可以将图分为有向图和无向图两种。

  • 无向边:若顶点 V i Vi Vi V j Vj Vj 之间的边没有方向,称这条边为无向边,用 ( V i , V j ) (Vi, Vj) (Vi,Vj)表示。

  • 无向图:图中任意两个顶点的边都是无向边。

    在这里插入图片描述

  • 有向边:若顶点 V i Vi Vi V j Vj Vj 之间的边有方向,称这条边为有向边,也成为弧,用 < V i , V j > <Vi, Vj> <Vi,Vj>表示, V i Vi Vi 称为弧尾, V j Vj Vj 称为弧头。

  • 有向图:图中任意两个顶点的边都是有向边。

    在这里插入图片描述

    上面两张图具有相同的顶点集 V V V,但是边集 E E E不同,所以属于不同的两个图。

  • 简单图:不存在自环(顶点到其自身的边)和重边(完全相同的边)的图。

  • 无向完全图:无向图中,任意两个顶点之间都存在边。

  • 有向完全图:有向图中,任意两个顶点之间都存在方向相反的两条弧。

  • 稀疏图:有很少条边或弧的图称为稀疏图,反之称为稠密图。

  • 权重:边的作用是用来描述两个顶点之间的关系,上面两张图仅能表示两个顶点是联通的,可达的。可以给边设置权重,表示从图中一个顶点到另一个顶点的距离或耗费。

    在这里插入图片描述

  • 网:带有权的图。

  • 度:与特定顶点相连接的边数。

    • 从一个顶点出发,到相邻顶点的边的个数称为该顶点的出度
    • 以一个顶点为终点的边的个数称为该顶点的入度
  • 路径与回路:从顶点集合 V V V 中选择 v 1 v1 v1 作为起点, v 2 v2 v2 作为终点。

    • 从起点出发到达终点的过程中,经过的边的集合称为路径,路径中边的个数称为路径长度。
    • 若路径中不重复经过一个顶点,则称为简单路径。
    • 若起点和终点是同一个顶点,则该路径也称之为回路。
  • 连通图:

    • 对于无向图,若图中任意两个顶点之间存在路径,则该无向图为连通图。

      在这里插入图片描述

    • 对于有向图,若图中任意两个顶点之间存在双向路径,则该有向图为强连通图。

      在这里插入图片描述

  • 极大连通子图:包含尽可能多的顶点(必须是连通的)。对于连通图,其极大连通子图为其本身。

  • 连通分量:

    • 对于无向图,其连通分量为极大连通子图。示例中有三个极大连通子图。

    • 对于有向图,其强连通分量为极大强连通子图。示例中有两个极大强连通子图。

      在这里插入图片描述

  • 生成树:是针对连通图来说的。

    • 连通图的生成树必须包含两个条件:
      • 包含连通图中所有的顶点
      • 任意两顶点之间有且仅有一条通路

    在这里插入图片描述

    ​ a)为一张连通图,b)为对应的生成树

  • 最小生成树:在连通网的所有生成树中,所有边的代价和最小的生成树,称为最小生成树。

    在这里插入图片描述

  • 极小连通子图:一个连通图的生成树是该连通图顶点集确定的极小连通子图。

    • 之所以称为极小是因为此时如果删除一条边,就无法构成生成树,也就是说给极小连通子图的每个边都是不可少的。

    • 如果在生成树上添加一条边,一定会构成一个环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值