Mini-Notes: 数据结构与算法-[第一部分]图论

前言
这个Mini-Notes开始于2016年4月18日下午,我想要认认真真把它写好,我也会认认真真把它写好。

Graphs: Definitions

从一些定义出发

  • 首先必然是一些定义。思考如下几个问题:
  1. 什么是graphs?
    Answer: 图就是由顶点和连接顶点的边构成的离散结构。
  2. Vertices?
  3. Edges?
  4. e is incident(邻接) with v and w代表什么?(边e连接了点v和点w)
  5. Undirected graph(一般来说graph指的是undirected graph)和directed graph(digraph)
  6. Two vertices are **adjacent(相邻的)**意味着什么?
  • 给出两个Graphs的Example:第一个是有向图、第二个是无向图
    有向图

无向图

  • 还有一些相关的定义:
  1. Path
    Answer: 一系列不同的vertices,它们adjacent to the next
  2. Cycle
    Answer: 一个包含至少3个点的path,且最后一个点跟第一个是adjacent的
  3. Connected连通的
    Answer: 任意两个点之间有path
  4. Free tree
    Answer: 连通、无向、无环图
  5. 在directed graph里:directed path(cycle)
  6. 对于有向图来讲:什么是strongly connected(强连通)?什么是weakly connected(弱连通)
  7. 什么是一个vertex的degree
  • 以上那些定义可以通过这几个examples来理解:
    几个帮助理解定义的examples

  • 另外,还有一些图的定义:
    | 分类 | 定义 |
    | ------------- | ------------- |
    | Complete graph | 无向图且每两个点之间有一条边相连,边数是n(n - 1) / 2 |
    | Complete digraph | 有向图且每两个点有两条方向不同的边相连,边数是n(n - 1) |
    | Dense graph & Sparse graph (稠密图 & 稀疏图) | 边数的多与少 |
    | Weighted graph & Unweighted graph (带权图 & 无权图) | 边有无权值 |
    | Simple graph (简单图) | 没有multi-edge,multi-edge指的是边(x,y)出现多于一次 |
    | Acyclic graph | 不含有任何环,树就是连通的无向无环图 |
    | Directed acyclic graphs (有向无环图) | DAGs |

Graphs: Representations

了解了图的相关定义,思考一下:怎么表示图呢?

有两种主要的数据结构去表示图: **
第一种是
Adjacency Matrix(邻接矩阵)**
第二种是Adjacency Lists(邻接表)

邻接矩阵表示法

邻接矩阵表示法

邻接矩阵表示法代码

而对于带权图来说,对应位置的值代表权值。
带权图邻接矩阵表示法

邻接表表示法

邻接表表示法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值