图论算法基础

【0】README

0.1)本文总结于 数据结构与算法分析, 旨在复习数据结构中图论算法的基础知识;


【1】图论若干相关定义

1.1)图G定义:一个图G=(V,E)由顶点及集V 和 边集E组成, 每一条边就是一个点对(v, w);
1.2)边邻接:当且仅当(v,w)∈E, 在无向图中, w和v邻接,且v也和w邻接;(还有第3中成分:边的权值)
1.3)路径: 一条路径是一个顶点序列 w1, w2,…,wn, 使得(wi,wi+1)∈E,这样一条路径长是该路径上的边数;
1.4)简单路径:其上的所有顶点都是互异的,但第一个顶点和最后一个顶点可能相同;
1.5)连通图(对于无向图而言): 如果在一个无向图中从每一个顶点到每个其他顶点都存在一条路径,则称该无向图是连通的;
1.6)强连通图(对于有向图而言):具有无向图连通性质的有向图称为是强连通的;
1.7)基础图:去掉有向图上的方向所形成的图;
1.8)弱连通图:如果有向图不是强连通的, 但基础图是连通的, 那么该图称为是弱连通的;
1.9)完全图: 是指每一对顶点间都存在一条边的图;


【2】图的表示

2.1)邻接矩阵:对于每条边(u, v), 我们设置 A[u][v]=1,否则数组的元素为0;如果边是有权的,设置A[u][v] 等于该权值 且用一个很大或者很小的权作为标记表示不存在的边;(∞)

  • 2.1.1)邻接表的空间需求是 Θ(|V|^2);如果图是稠密的:|E| = Θ(|V|^2) , 则邻接矩阵是合适的表示方法;如果在大部分应用中,图都是稀疏的;

2.2)邻接表(图的标准表示方法):如果图是稀疏的, 则使用邻接表来表示。对每一个顶点,我们使用一个表存放所有邻接的顶点。此时的空间需求为 O(|E| + |V|);

  • 2.2.1)引入散列表:在应用中,顶点都是名字而不是数字, 这些名字在编译时是未知的。由于我们不能够通过未知名字为一个数组做索引, 因此我们必须提供从名字到数字的映射。完成这项工作最容易的 方法是使用散列表, 在该散列表中我们对每个顶点存储一个名字以及一个范围在1到 |V| 之间的内部编号;
  • 2.2.2)邻接表的一个荔枝:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值