数据结构-图
学习路径如下:
什么是图
- 图
图(
Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:\(G(V,E)\),其中,\(G\)表示一个图,\(V\)是图\(G\)中顶点(vertex)的集合,\(E\)是图\(G\)中边(edge)的集合
注意:图可以没有边,不能没有顶点
- 子图
假设有两个图\(G(V,E)\)和\({G}'({V}',{E}')\),如果\({V}'\subseteq V\)且\({E}'\subseteq E\), 则称\({G}'\)为\(G\)的子图(
subgraph)
简单图
图中不存在顶点到自身的边,且同一条边不重复出现,称这样的图为简单图
之后的讨论都是基于简单图进行的
权重/网
- 权重(
weight)
与边相关的数称为权重(
weight)
- 网
带权重的图通常称为网(
network)
有向图/无向图
- 无向边(
undirected edge)
若顶点\(x\)和\(y\)之间的边没有方向,则称该边为无向边,用无序偶对\((x,y)\)表示。\((x,y)\)与\((y,x)\)意义相同,仅表示\(x\)和\(y\)之间有连接
- 有向边(
directed edge)
若顶点\(u\)和\(v\)之间的边有方向,则称该边为有向边(也称为弧\(Arc\)),用有序偶对
<u,v>表示,表示从\(u\)指向\(v\)。称\(u\)为该边的起点(origin)或尾顶点/弧尾(tail),称\(v\)为该边的终点(destination)或头顶点/弧头(head)
- 无向图
图中任意两个顶点之间的边都是无向边,称该图为无向图(
undirected graph)
- 有向图
图中任意两个顶点之间的边都是有向边的图称为有向图(
directed graph)
- 混合图
包含无向边和有向边的图称为混合图(
mixed graph)
注意:无向边用小括号\(()\)表示,有向边用尖括号\(<>\)表示
稀疏图/稠密图/完全图
- 稀疏图(
sparse graph)
顶点很少互相连接的图
- 稠密图(
dense graph)
顶点几乎都能两两连接的图
- 完全图(
complete graph)
每个顶点均与除自身之外的其他顶点连接的图
- 无向完全图
在无向图中,如果任意两个顶点之间都存在边,则称该图为无向完全图
含有\(n\)个顶点的无向完全图有\(\frac {n\times (n-1)}{2}\)条边
- 有向完全图
在有向图中,如果任意两个顶点之间都存在方向互为相反的两条弧,则称该图为有向完全图
含有\(n\)个顶点的有向完全图有\(n\times (n-1)\)条边
相关阅读
- 《大话数据结构》第7章 图
- 数据结构与算法——图论基础与图存储结构
- 无向图