Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
cs61b-textbook-zh
提交
1104642c
C
cs61b-textbook-zh
项目概览
OpenDocCN
/
cs61b-textbook-zh
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
cs61b-textbook-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
1104642c
编写于
6月 23, 2019
作者:
Y
yuanrw
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
change pic
上级
ef375dc2
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
2 addition
and
4 deletion
+2
-4
zh/12.md
zh/12.md
+2
-4
未找到文件。
zh/12.md
浏览文件 @
1104642c
...
...
@@ -2,15 +2,13 @@
> 译者:[yuanrw](https://github.com/yuanrw)
# 第十二章 图
在计算机科学中,图是一种代表数学关系的数据结构,它包含一个
*顶点(节点)*
的集合和一个
*边*
的集合,每一个顶点和一条边组成了一个向量。如果图中的每条边是无方向的,那就是一个无向图,如果边是有方向的,那就是一个有向图,在有向图中每一条边都从一个顶点出发到另一个顶点。例如我们有顶点v和w,那么连接v和w的边就用(v,w)来表示,如果这是一条无向边,那么也可以用{v,w}表示,如果是有向边,边的方向是从v出发到w,则用[v,w]表示。(v,w)是指连接顶点v和顶点w的一条边,如果(v,w)是无向的,那么我们就说v和w是相邻顶点,顶点的
*度*
(degree)是指和这个顶点相关联的边的条数。有向图中,
*入度*
是指进入该顶点的边的条数,出度是指从该顶点出发的边的条数。一般来说,一条边所连接的两个顶点是不一样的,一条边不会从一个顶点出发又回到这个顶点。
如果某一个图的顶点集和边集分别是图G的顶点集的子集和边集的子集的图,那这个图就叫做G的子图。
若存在一个顶点序列!
[
v0
](
http://latex.codecogs.com/gif.latex?
\\$$v_0$$}
)
,!
[
v1
](
http://latex.codecogs.com/gif.latex?\\$$v_1$$}
)
,…,!
[
vk-1
](
http://latex.codecogs.com/gif.latex?\\$$v_k-1$$}
)
其中v=!
[
v0
](
http://latex.codecogs.com/gif.latex?\\$$v_0$$}
)
,!
[
v'
](
http://latex.codecogs.com/gif.latex?\\$$v'$$}
)
=!
[
vk-1
](
http://latex.codecogs.com/gif.latex?\\$$v_k-1$$}
)
,序列中任意两个顶点组成的边($$v_i$$,$$v_i+1$$)都在图中,那么这个序列就叫做顶点v到!
[
v'
](
http://latex.codecogs.com/gif.latex?\\$$v'$$}
)
的一条
*路径*
,路径的长度(该路径上边的数目)k!
[
ge
](
http://latex.codecogs.com/gif.latex?\\$$\geq$$}
)
0,这条定义对有向图和无向图都适用;在有向图中,路径是有方向的。如果路径中没有重复顶点,那我们就称它为
*简单路径*
。当k > 1且v=!
[
v'
](
http://latex.codecogs.com/gif.latex?\\$$v'$$}
)
,那么它就是
*环*
,如果!
[
v0
](
http://latex.codecogs.com/gif.latex?\\$$v_0$$}
)
…,!
[
vk-2
](
http://latex.codecogs.com/gif.latex?\\$$v_k-2$$
}
)
是不重复的,我们就称它为一个
*简单环*
;在无向图中,环还必须满足另一个条件:环中不能有两条重复的边。一个没有环的图我们称之为
*无环图*
。
若存在一个顶点序列!
[
v0
](
http://latex.codecogs.com/gif.latex?
v_0}
)
,!
[
v1
](
http://latex.codecogs.com/gif.latex?v_1}
)
,…,!
[
vk-1
](
http://latex.codecogs.com/gif.latex?v_k-1}
)
其中v=!
[
v0
](
http://latex.codecogs.com/gif.latex?v_0}
)
,!
[
v'
](
http://latex.codecogs.com/gif.latex?v'}
)
=!
[
vk-1
](
http://latex.codecogs.com/gif.latex?v_k-1}
)
,序列中任意两个顶点组成的边(!
[
vi
](
http://latex.codecogs.com/gif.latex?v_i}
)
,!
[
vi+1
](
http://latex.codecogs.com/gif.latex?v_i+1}
)
)都在图中,那么这个序列就叫做顶点v到!
[
v'
](
http://latex.codecogs.com/gif.latex?v'}
)
的一条
*路径*
,路径的长度(该路径上边的数目)k!
[
ge
](
http://latex.codecogs.com/gif.latex?\geq}
)
0,这条定义对有向图和无向图都适用;在有向图中,路径是有方向的。如果路径中没有重复顶点,那我们就称它为
*简单路径*
。当k > 1且v=!
[
v'
](
http://latex.codecogs.com/gif.latex?v'}
)
,那么它就是
*环*
,如果!
[
v0
](
http://latex.codecogs.com/gif.latex?v_0}
)
…,!
[
vk-2
](
http://latex.codecogs.com/gif.latex?v_k-2
}
)
是不重复的,我们就称它为一个
*简单环*
;在无向图中,环还必须满足另一个条件:环中不能有两条重复的边。一个没有环的图我们称之为
*无环图*
。
如果从顶点v到顶点!
[
v'
](
http://latex.codecogs.com/gif.latex?
\\$$v'$$}
)
有路径,那么!
[
v'
](
http://latex.codecogs.com/gif.latex?\\$$v'$$
}
)
和v就是
*连通的*
。在无向图中,如果存在一个子图,其中任何两个顶点都是联通的,并且子图外的没有顶点与子图内的顶点连通,那么这个子图就是一个
*连通分量*
。如果一个无向图中只有一个连通分量,那么这个图就是一个
*连通图*
(即连通分量中包含了左右顶点)。
如果从顶点v到顶点!
[
v'
](
http://latex.codecogs.com/gif.latex?
v'}
)
有路径,那么!
[
v'
](
http://latex.codecogs.com/gif.latex?v'
}
)
和v就是
*连通的*
。在无向图中,如果存在一个子图,其中任何两个顶点都是联通的,并且子图外的没有顶点与子图内的顶点连通,那么这个子图就是一个
*连通分量*
。如果一个无向图中只有一个连通分量,那么这个图就是一个
*连通图*
(即连通分量中包含了左右顶点)。
有向图的连通分量和无向图中一样,唯一的区别是所有的边都是有向边。有向图中如果有一子图,子图中任意两个顶点都是连通的,那么这个子图叫做
*强连通分量*
。见图12.1和图12.2。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录