数据结构中的图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8. 无向图的连通图和连通分量
9. 有向图的强连通图和强连通分量
10. 网络
21
7.1.3 图的基本操作 图的基本操作: 图的初始化:Create() 销毁图:Destory() 删除图中所有元素,回收图所占空间。 取顶点:GetVex(i) 取图中的第i 个顶点的数据信息。
22
插入顶点:InsertVex(v)
12
7.1.2 图的基本术语 1. 有向图和无向图 如果 G 中的每条边都是有方向的,则称 G 为 有向图。 在有向图中,一条有向边是由两个顶点组 成的有序对,通常用尖括号表示。 例如, <vi,vj> 表示一条有向边, vi是边的 始点,vj是边的终点。
13
若图G中的每条边都是没有方向的,则称G为 无向图。 无向图中的边均是顶点的无序对,通常用圆 括号表示。无序对(vi,vj)和(vj,vi)表示同 一条边。
E(G2) = {<v1,v2> , <v1,v3> , <v3,v4> , <v4,v1>}
16
2. 稠密图和稀疏图
3. 边和顶点的关系
若 (vi,vj) 是一条无向边,则称顶点 vi 和 vj 互为邻 接点 (adjacent) ,或称 vi 和 vj 相邻接,并称 (vi,vj) 依附或关联 (incident) 于顶点 vi 和 vj 或称 (vi,vj) 与 顶点vi和vj相关联。
实现和评价,并给出了应用实例。
教材附录给出了上机实验内容。
1
教材目录
第 0章 C++程序设计语言预备知识
0.1 0.2 0.3 0.4 0.5 0.6 0.7
一个简单C++语言程序 指针与引用 动态存贮分配 函数 类与对象 运算符重载 模板
2
第 1章 1.1 1.2 1.3 1.4 第 2章 2.1 2.2 2.3 2.4 2.5
14
v1
v2
v3
v4wenku.baidu.com
v5
无向图G1,在该图中: V(G1)={v1,v2,v3,v4,v5} E(G1)={(v1,v2) , (v1,v4) , (v2,v3) , (v2,v5) ,(v3,v4),(v3,v5) }
15
v1
v2
v3
v4
有向图G2,该图的顶点集和边集分别为: V(G2)={v1,v2,v3,v4,v5}
19
6. 路径 设 G 是图,若存在一个顶点序列 vp , v1 , v2,…,vq-1,vq使得 (vp,v1),(v1,v2),…, (vq-1,vq) 属于 E,则称 vp 到 vq存在一条路径 (path),其中vp为起点,vq为终点。 路径的长度是该路径上边的数目。
20
7. 有根图和图的根
绪论 数据结构的产生和发展 数据结构研究的内容 基本概念和术语 算法 线性表 线性表的逻辑结构 线性表的顺序存储结构 线性表的链式存储结构 顺序表和链表的比较 线性表的应用
3
第3章 栈和队列 3.1 栈 3.2 队列 3.3 栈的应用
第 4章 4.1 4.2 4.3 4.4
串 串的逻辑结构 串的顺序存储结构 串的链式存储结构 串的应用
在图中插入顶点v。
删除顶点:DeleteVex(v) 删除图中顶点v。 插入边或弧:Insert(v,w) 在图中插入一条边(v,w)或弧<v,w>,如是无 向图,还应增加对称边(w, v)。 删除边或弧:Delete(v,w)
23
7.2 图的存储结构
图 图的逻辑结构 图的存储结构 图的遍历 生成树和最小生成树 最短路径 DAG图及其应用
7
第 8章
排序
8.1 8.2 8.3 8.4 8.5 8.6 8.7
概述 插入排序 交换排序 选择排序 归并排序 基数排序 各种内排序方法的比较和选择
8
第 9章
查找
9.1 9.2 9.3 9.4
概述 线性表的查找 树表的查找 散列表的查找
若<vi,vj>是一条有向边,则称此边是顶点vi的一 条出边,同时也是顶点vj的一条入边;称顶点 vi 邻接到 ( 或邻接于 )顶点 vj,并称边 <vi,vj>关联于 vi和vj,或称<vi,vj>与顶点vi和vj相关联。
17
4. 顶点的度 无向图中顶点v的度是关联于该顶点的边的数 目,记为D(v)。
内容简介
本教材采用面向对象的观点讨论数据结构技术,并以 C++类模板作为算法描述工具。
教材在简要回顾C++程序设计概念的基础上,全面系统
地介绍了线性表、栈和队列、串、数组和广义表、树 和二叉树及图等数据结构,讨论了常用的查找和排序 技术,对每一种数据结构,除了详细阐述其逻辑结构、 存储结构和相关算法外,还对所有算法进行了C++语言
4
第 5章
5.1 5.2 5.3 5.4
数组和广义表
数组 矩阵的压缩存储 广义表 多维数组的应用
5
第 6章 6.1 6.2 6.3 6.4 6.5 6.6 6.7
树和二叉树 树的逻辑结构 树的顺序存储结构 二叉树的逻辑结构 二叉树的存储结构 线索二叉树 树、森林与二叉树的转换 树的应用
6
第 7章 7.1 7.2 7.3 7.4 7.5 7.6
附录 实验内容
9
第7章 图
10
本章主要内容
7.1 图的逻辑结构 7.2 图的存储结构 7.3 图的遍历 7.4 生成树和最小生成树 7.5 最短路径 7.6 DAG图及其应用
11
7.1 图的逻辑结构
7.1.1图的定义 图G由结点的有穷非空集合 V和边的有穷集合 E 组成,记为 G=(V , E) 。在图结构中,将结 点称为顶点,以便与树形结构加以区别,边 则是顶点的偶对,若两个顶点之间存在一条 边,就表示这两个顶点具有相邻关系。通常, 也 将 图 G 的 顶 点 集 和 边 集 分 别 记 为 V(G) 和 E(G)。E(G)可以是空集,若E(G)为空,则图 G只有顶点而没有边。
在有向图中,以顶点v为终点的边的数目称为 v的入度,记为ID(v);以顶点v为始点的边的 数目称为v的出度,记为OD(v)。顶点v的度定 义为该顶点的入度和出度之和,即 D(v)=ID(v)+OD(v)。
18
5. 子图 设G=(V,E)是一个图,若V´是V的子集, E´是 E 的子集,且 E´的边所关联的顶点均 在 V´中,则 G´=(V´, E´) 也是一个图,并 称其为G的子图。