数据结构和算法---图---概念入门(一)

学习重点

1. 图的基本术语
图的定义:顶点的有穷集合和顶点之间的边集合组成。简言之,点和边组成图。
无向边:两个顶点之间的边是没有方向的。
有向边、弧: 顶点 i 到顶点 j 的边是有方向的。
无向图:任意两个顶点之间的边都是无向边。
有向图:任意两个顶点之间的边都是有向边。

无向图

无向图

邻接:无向图中,任意两点之间存在边,则称这两点互为邻接点,对应边依附于该两点;有向图中,任意两点存在弧 < i , j >,则称顶点 i 邻接到 j 。

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

稀疏图、稠密图:边很少的图为稀疏图,反之为稠密图。稀疏和稠密是相对而言。

顶点的度:在无向图中,顶点的度为依附于该顶点的边的条数。在具有 n 个顶点 E 条边的无向图中,所有度和为 2E。

入度和出度:在有向图中,顶点的入度为指向该顶点为弧头的个数。出度为该顶点为弧尾的个数。在具有 n 个顶点 E 条边的有向图中,出度和与入度和均为 E。

权和网:权是指对边赋予有意义的值。带权的图称为网或者网图。

路径、路径长度、回路:路径是两点之间有通路,即边。路径长度为边的数目,第一个顶点和最后一个顶点相同的路径为回路或者环。

简单路径和简单回路:顶点不重复出现的路径称为简单路径,除第一个和最后一个顶点不重复出现称为简单回路。

子图:两个图之间有包含关系,被包含的图称为子图,图可以有多个子图。

连通图、连通分量:无向图中,任意顶点之间有路径,则为连通图,反之为非联通图。非连通图的极大连通子图称为联通分量。

强连通图、强连通分量:在有向图中,任意顶点之间有路径,则为强连通图,反之为非强联通图。非强连通图的极大连通子图称为强联通分量。

生成树、生成森林:连通图 G 的生成树是包含 G 所有顶点的极小连通子图。连通图的生成树是自由树,可任意指定一个顶点为树的根节点。一棵具有 n 个顶点的生成树有且仅有 n-1 条边。

有向图

有向图

2. 图的遍历操作
深度优先遍历:类似于树的前序遍历。
思路:

  • 访问顶点 v ;
  • 从 v 未被访问的邻接点中选取一个顶点 w ,从 w 开始出发进行深度优先遍历;
  • 重复上述两步,直至图中所有和 v 有路径相同的顶点都被访问到。

广度优先遍历:类似与树的层序遍历。

  1. 访问顶点 v;
  2. 依次访问 v 的各个未被访问的邻接点 i , j , k ;
  3. 再分别从 i, j , k 出发依次访问它们未被访问的所有邻接点;
    广度优先遍历

广度优先遍历–队列形式

3.图的存储结构

邻接矩阵:
邻接表:
十字链表:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值