7.ppt数据结构

合集下载

大学计算机基础07数据结构与算法资料PPT课件

大学计算机基础07数据结构与算法资料PPT课件
第7章 数据结构与算法
7.1 算 法 7.2 数据结构的基本概念 7.3 线性表及其顺序存储结构 7.4 栈和队列 7.5 线性链表 7.6 树与二叉树 7.7 查找与排序技术
第7章 数ST PART OF THE OVERALL OVERVIEW, PLEASE SUMMARIZE THE CONTENT
例7.2 有5个人坐在一起, 问第5个人的岁数,他说比第4个人大2岁。 问第4个人的岁数,他说比第3个人大2岁。 问第3个人的岁数,他说比第2个人大2岁。 问第2个人的岁数,他说比第1个人大2岁。 问第1个人的岁数,他说是10岁。 请问第5个人多大。
27.07.2020
11
第7章 数据结构与算法
这个问题可以用递归方法解决。递归过程如下: age(5)=age(4)十2 age(4)=age(3)十2 age(3)=age(2)十2 age(2)=age(1)十2 age( l)=10
27.07.2020
14
第7章 数据结构与算法
2.算法的空间复杂度 算法的空间复杂度是指执行这个算法所需要的内存空间。 类似算法的时间复杂度,空间复杂度作为算法所需存储空 间的度量。
27.07.2020
15
第7章 数据结构与算法
7.2 数据结构的基本概念 数据结构主要研究三个问题:
(1)数据集合中各数据元素之间所固有的逻辑关 系,即数据的逻辑结构;
现实世界中存在的一切个体都可以是数据元素(简称元 素)。
例如: 春、夏、秋、冬; 26、56、65、 73、26、…; 父亲、儿子、女儿。
数据元素之间的关系可用前后件关系 例如, “春”是“夏”前件,“夏”是“春”的后件。
27.07.2020
18

《数据结构图论部分》PPT课件

《数据结构图论部分》PPT课件

Page 4
2020/11/24
哥尼斯堡七桥问题
能否从某个地方出发,穿过所有的桥仅一次 后再回到出发点?
Page 5
2020/11/24
七桥问题的图模型
欧拉回路的判定规则:
1.如果通奇数桥的地方多于
C
两个,则不存在欧拉回路;
2.如果只有两个地方通奇数
桥,可以从这两个地方之一
A
B 出发,找到欧拉回路;
V4 是有向边,则称该图为有向图。
Page 9
2020/11/24
简单图:在图中,若不存在顶点到其自身的边,且同 一条边不重复出现。
V1
V2
V3
V4
V5
非简单图
V1
V2
V3
V4
V5
非简单图
V1
V2
V3
V4
V5
简单图
❖ 数据结构中讨论的都是简单图。
Page 10
2020/11/24
图的基本术语
邻接、依附
DeleteVex(&G, v); 初始条件:图 G 存在,v 是 G 中某个顶点。 操作结果:删除 G 中顶点 v 及其相关的弧。
Page 34
2020/11/24
InsertArc(&G, v, w); 初始条件:图 G 存在,v 和 w 是 G 中两个顶点。 操作结果:在 G 中增添弧<v,w>,若 G 是无向的,则还
Page 2
2020/11/24
• 知识点
– 图的类型定义 – 图的存储表示 – 图的深度优先搜索遍历和广度优先搜索遍历 – 无向网的最小生成树 – 拓扑排序 – 关键路径 – 最短路径
Page 3

数据结构.ppt

数据结构.ppt

2020/2/15
数据结构
17
2.1 线性表的概念及运算
一、逻辑结构 1.描述: 线性表是由n (n>=0)个数据元素(点)a1,a2,….,ai,….,an
组成的有限序列。其中,数据元素的个数n定义为表长。 当n=0时称为空表,非空的线性表(n>0)记为: (a1,a2,….,ai,…..,an)
2020/2/15
数据结构
11
第一章 概 论
1.4 算法分析
一、算法评价五要素 (1)正确性 (2)执行算法所耗费的时间 (3)执行算法所耗费的空间 (4)可读性 (5)健壮性
2020/2/15
数据结构
12
第一章 概 论
二、算法的时间复杂度
•一个算法所耗费的时间:该算法中每条语句的执行时间之和。 •每条语句的执行时间:该语句的执行次数乘以该语句执行一次 所需时间。 •频度:语句重复执行的次数 •算法的时间耗费T(n)=每条语句的执行的时间
2020/2/15
数据结构
23
一、链表
2.3 线性表的链式存储
1、 链式存储:用一组任意的存储单元存储线性表, 逻辑上 相邻的结点在物理位置上不一定相邻,结点间 的逻辑关系由存储结点时附加的指针字段表示
2、链表:采用链式存储方法的线性表称为链表。
2020/2/15
数据结构
24
2.3.1 单链表
1、单链表的特点:每个结点只有一个链域,指向其直接后继 (尾结点除外)。
依据数据集中可能出现的最坏情况估算出的时间复杂度 称为最坏时间复杂度。
五、平均时间复杂度
在假设数据集的分布是等概率的条件下,估算出的时间 复杂度称为平均时间复杂度。
例:顺序查找

数据结构讲义精品PPT课件

数据结构讲义精品PPT课件

003 陈诚 02 男 19840910 638
… … … ……

数据元素
数据结构 具有结构的数据元素的集合。它包 括数据元素的逻辑结构、存储结构和相适应的 运算。
逻辑结构
数据元素之间的逻辑关系,与计算机无关。 可用一个二元组表示:Data_Structure = (D,R) D:数据元素的有穷集合,R:集合D上关系的有穷集合。
《The Art of Computer Programming》
Art Evans
数据结构在计算机科学中是一门综合性的专业基础课, 也是计算机专业的必修课,是其它许多课程的先修课程, 是设计编译程序、操作系统、数据库系统等系统程序和 大型应用程序的重要基础。
1.2 基本概念和术语
基本术语
数据 被计算机加工处理的对象。 数据元素(记录、表目) 数据的基本单位,
几种常用的运算有: (1)建立数据结构 (2)清除数据结构 (3)插入数据元素 (4)删除数据元素 (5)排序
(6)检索* (7)更新 (8)判空和判满* (9)求长*
*操作为引用型操作,即数据值不发生变化; 其它为加工型操作。
抽象数据类型
抽象数据类型 ADT( Abstract Data Type ): 数据类型概念的引伸。指一个数学模型以及在其上定义的操作集 合,与计算机无关。 数据类型:一组值的集合和定义在其上的一组操作的总称。
抽象数据类型的描述方法
ADT 抽象数据类型名 { 数据对象:〈数据对象的定义〉 数据关系:〈数据关系的定义〉 基本操作:〈基本操作的定义〉
} ADT 抽象数据类型名
其中基本操作的定义格式为:
基本操作名(参数表) 初始条件:〈初始条件描述〉 操作结果:〈操作结果描述〉

数据结构(严蔚敏)第7章 PPT课件

数据结构(严蔚敏)第7章 PPT课件

B A
F
2019年12月13日星期五
C
F
E
D 若无向图为非连通图, 则图中各个极大连通
E
子图称作此图的连通
分量。
第16页
对有向图,若任意两个顶点之间都存在
一条有向路径,则称此有向图为强连通图。
否则,其各个强连通子图称作它的 强连通分量。
A
A
B
EB
E
CF
2019年12月13日星期五
第17页
CF
假设一个连通图有 n 个顶点和 e 条边, 其中 n-1 条边和 n 个顶点构成一个极小连 通子图,称该极小连通子图为此连通图的 生成树。
2019年12月13日星期五
E 顶点的出度: 以顶点v 为弧尾的弧的数目;
顶点的入度: 以顶点v 为弧头的弧的数目。
顶点的度(TD)= 出度(OD)+入度(ID)
第14页
设图G=(V,{VR})中的一个顶点序列
{ u=vi,0,vi,1, …, vi,m=w}中,(vi,j-1,vi,j)VR 1≤j≤m, 则称从顶点u 到顶点w 之间存在一条路径。
2019年12月13日星期五
7.1 图的定义与术语
7.2 图的存储表示
7.3 图的遍历
7.4 最小生成树
7.5 重(双)连通图和关节点
7.6 两点之间的最短路径问题
7.7 拓扑排序
2019年12月13日星期五
7.8 关键路径 第6页
7.1 图的定义与术语
图的结构定义:
图是由一个顶点集 V 和一个弧集 R构成 的数据结构。
struct ArcBox *hlink, *tlink;
} VexNode;
2019年12月13日星期五

数据结构详解ppt课件

数据结构详解ppt课件

“数据结构知识导入全程目标•数据结构的基本概念–逻辑结构–物理结构–运算结构•数据结构的基本实现–堆栈–队列–链表–二叉树知识讲解数据结构的基本概念•数据结构是相互之间存在一种或多种特定关系的数据的集合•数据结构是计算机存储、组织数据的方式•数据结构的选择直接影响计算机程序的运行效率(时间复杂度)和存储效率(空间复杂度)•计算机程序设计=算法+数据结构•数据结构的三个层次–抽象层——逻辑结构–结构层——物理结构–实现层——运算结构识讲解•集合结构(集)–结构中的数据元素除了同属于一个集合外没有其它关系识讲解•线性结构(表)–结构中的数据元素具有一对一的前后关系识讲解•树型结构(树)–结构中的数据元素具有一对多的父子关系知识讲解实现双向线性链表•删除节点识讲解•树形结构的最简模型,每个节点最多有两个子节点•每个子节点有且仅有一个父节点,整棵树只有一个根节点•具有递归的结构特征,用递归的方法处理,可以简化算法•三种遍历序–前序遍历:D-L-R–中序遍历:L-D-R–后序遍历:L-R-D识讲解•二叉树的一般形式–根节点、枝节点和叶节点–父节点和子节点–左子节点和右子节点–左子树和右子树–大小和高度(深度)识讲解•满二叉树–每层节点数均达到最大值–所有枝节点均有左右子树知识讲解二叉树•完全二叉树–除最下层外,各层节点数均达到最大值–最下层的节点都连续集中在左边识讲解•顺序存储–从上到下、从左到右,依次存放–非完全二叉树需用虚节点补成完全二叉树识讲解•链式存储–二叉链表,每个节点包括三个域,一个数据域和两个分别指向其左右子节点的指针域识讲解•链式存储–三叉链表,每个节点包括四个域,一个数据域、两个分别指向其左右子节点的指针域和一个指向其父节点的指针域知识讲解实现有序二叉树•有序二叉树亦称二叉搜索树,若非空树则满足:–若左子树非空,则左子树上所有节点的值均小于等于根节点的值–若右子树非空,则右子树上所有节点的值均大于等于根节点的值–左右子树亦分别为有序二叉树•基于有序二叉树的排序和查找,可获得O(logN)级的平均时间复杂度知识讲解逻辑结构•网状结构(图)–结构中的数据元素具有多对多的交叉映射关系识讲解•顺序结构–结构中的数据元素存放在一段连续的地址空间中识讲解•顺序结构–随机访问方便,空间利用率低,插入删除不方便识讲解•链式结构–结构中的数据元素存放在彼此独立的地址空间中–每个独立的地址空间称为节点–节点除保存数据外,还需要保存相关节点的地址识讲解•链式结构–插入删除方便,空间利用率高,随机访问不方便知识讲解逻辑结构与物理结构的关系•每种逻辑结构采用何种物理结构实现,并没有一定之规,通常根据实现的难易程度,以及在时间和空间复杂度方面的要求,选择最适合的物理结构,亦不排除复合多种物理结构实现一种逻辑结构的可能知识讲解运算结构•创建与销毁–分配资源、建立结构、释放资源•插入与删除–增加、减少数据元素•获取与修改–遍历、迭代、随机访问•排序与查找–算法应用知识讲解数据结构的基本实现•堆栈–基于顺序表的实现–基于链式表的实现•队列–基于顺序表的实现–基于链式表的实现•链表–双向线性链表的实现•二叉树–有序二叉树(二叉搜索树)的实现知识讲解堆栈•后进(压入/push)先出(弹出/pop)识讲解•初始化空间、栈顶指针、判空判满识讲解•动态分配、栈顶指针、注意判空知识讲解队列•先进(压入/push)先出(弹出/pop)识讲解•初始化空间、前弹后压、循环使用、判空判满识讲解•动态分配、前后指针、注意判空知识讲解链表•地址不连续的节点序列,彼此通过指针相互连接•根据不同的结构特征,将链表分为:–单向线性链表–单向循环链表–双向线性链表–双线循环链表–数组链表–链表数组–二维链表识讲解•单向线性链表识讲解•单向循环链表识讲解•双向线性链表识讲解•双向循环链表识讲解•数组链表识讲解•链表数组识讲解•二维链表识讲解•结构模型识讲解•插入节点。

2024年度《数据结构》全套课件

2024年度《数据结构》全套课件

线性表的性质
线性表中的数据元素之间是一对一的关系;除首元素外,每一个元素有且只有 一个直接前驱;除尾元素外,每一个元素有且只有一个直接后继。
2024/2/2
9
线性表的顺序存储结构
01
02
03
顺序存储的定义
线性表的顺序存储结构是 用一段连续的存储空间来 依次存放线性表的各个元 素。
2024/2/2
顺序存储的特点
37
06
数据结构的应用与拓展
2024/2/2
38
数据结构在算法设计中的应用
01
作为算法设计的基 础
数据结构为算法提供了基本操作 和存储方式,是算法实现的重要 基础。
02
提高算法效率
03
解决复杂问题
合理的数据结构可以大大提高算 法的时间效率和空间效率,如哈 希表、二叉搜索树等。
对于一些复杂的问题,需要设计 巧妙的数据结构来降低问题的复 杂度,如并查集、线段树等。
2024/2/2
39
数据结构在数据库系统中的应用
数据的组织和管理
数据库系统中需要大量存储 和管理数据,数据结构提供 了高效的数据组织和管理方
式,如B树、B+树等。
索引的实现
数据库中的索引是提高查询 效率的重要手段,而索引的 实现离不开数据结构,如哈
希索引、聚簇索引等。
2024/2/2
事务的处理
数据库中的事务需要保证 ACID特性,而数据结构中的 队列、栈等可以很好地支持 事务的处理。
为算法设计打下基础
数据结构是算法设计的基础,掌握数据结构可以更好地理解和设计 算法。
拓展计算机应用领域
数据结构在计算机科学的各个领域都有广泛应用,学习数据结构可以 拓展计算机应用领域,提高计算机解决问题的能力。

数据结构-PPT课件

数据结构-PPT课件

2.教学方法
(1). 小组讨论法
在课堂教学中,为了充分调动学 生的积极性,教师多提问,组织学生 多讨论,鼓励学生将课堂中疑点、 难点提出来, 从而调动大部分学生 的积极性与学习的主动性。
(2) 问题驱动法
教师在讲课时,引入What+How+Why 的教 学理念,采用发现学习模式,应用启发式教 学。What 是让学生明确学些什么,拓展学生 的知识面。How 就是如何做的意思。Why 是 让学生能够知道为什么这样做。教给学生提 出问题、分析问题和解决问题的方法,最终 达到学生自行探究问题的目的。
课题组成员认真研究教学,加强课程体系改革 与建设、对先进的教学理念、教学方法和教学手 段进行了广泛的探索,教学之余积极参与教研、 科研活动,社会服务活动。 近五年来主持研究课题10项、三个实验室的 建设,主编出版教材9本、发表论文30多篇,先后 获得过“莱芜市优秀教师”、“莱芜市优秀教育 工作者”、“莱芜职业技术学院教学能手”“莱 芜职业技术学院学术带头人”等荣誉称号。
(3)案例教学法
案例教学在数据结构的算法思想讲解中能发 挥其无可比拟的优势,在授课过程中我们尽量使 用一些身边的实例引入课题,深入浅出,便于学 生理解抽象的概念。 如:讲解队列的概念时,可通过日常生活中 的购物排队的过程来反映队列中插入、删除的原 则,再结合计算机中的操作队列、打印队列的应 用来说明。
六、教学环境
实践性教学是职业技术教育的灵魂, 它以发展学生的实践技能为出发点,以理 论联系实践、学用一致为主要特征。通过 实训实习,对学生的专业所学、所知、所 用进行全方位训练,组织形成完整的专业 技能训练过程,并对实训过程实施有效、 有序、有度、有机的调控,达到优化实训 过程,提高职业素质和专业技能的目的。

数据结构第7章图3有向无环图及其应用ppt课件

数据结构第7章图3有向无环图及其应用ppt课件
while (!StackEmpty(S)) { Pop(S,i); printf(i,G.vertices[i].data); ++count; //输出i号顶点并计数
for(p=G.vertices[i].firstarc; p; p=p->nextarc){ k=p—>adivex;//对i号顶点的每个邻接点入度减1 if(!(--indegree[k])) Push(S,k); //若入度减为0,则入栈
§7.5 有向无环图及其应用
❖有向无环图
在工程实践中,一个工程项目往往由若干个子项 目组成,这些子项目间往往有多种关系:
①先后关系,即必须在一子项目完成后,才能开 始实施另一个子项目;
②子项目之间无次序要求,即两个子项目可以同 时进行,互不影响。
§7.5 有向无环图及其应用
❖两种常用的活动网络(Activity Network)
3
4 4^
4
2 1^ 3^
1^
s
0 V1 3 V4
5 V6
4
V2 1 V3 2 V5 4
indegree[0..5] 0 0 0 0 0 0 012345
最后输出的拓扑序列为:v6v1v3v2v4v5
§7.5 有向无环图及其应用
G.vertices[0] v1
3
2
G.vertices[1] v打2 印^G.vertices[4].data
1. 输入AOV网络。令 n 为顶点个数。 2. 在AOV网络中选一个没有直接前驱的顶点, 并输出之; 3. 从图中删去该顶点, 同时删去所有它发出的有向边; 4. 重复以上 2、3 步, 直到:
全部顶点均已输出,拓扑有序序列形成,拓扑排序完成 或者,图中还有未输出的顶点,但已跳出处理循环。这说 明图中还剩下一些顶点,它们都有直接前驱,再也找不到 没有前驱的顶点了。这时AOV网络中必定存在有向环。
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ADT Graph { 数据对象V:v是具有相同特性的数据元素的集合,称为顶点集。 数据关系 R:R={VR};VR={<v,w>|v,w∈V 且 P(v,w), <v,w>表示从v到w的弧, 谓词P(v,w)定义了弧<v,w>的意义或信息} 基本操作P: CreatGraph ( &G, V,VR); 初始条件:V是图的顶点集,VR是图中弧的集合。 操作结果:按V和VR的定义构造图G。 注意:V 的大小写含
路径长度:非带权图的路径长度是指此路径上边的条数;
带权图的路径长度是指路径上各边的权之和。 简单路径:路径上各顶点 v1,v2,...,vm 均不互相重复。 若路径上第一个顶点 v1 与最后一个顶点vm 重合, 则称这样的路径为回路或环。
回 路:
例:
11
例 1
2 3 1
2 3
有向完全图 例 2 1 4 3 5 6
7
稀疏图: 边较少的图。通常边数<<n2 e<nlogn 稠密图: 边很多的图。无向图中,边数接近n(n-1)/2 ;
有向图中,边数接近n(n-1)
子 图: 设有两个图 G=(V, E) 和 G‘=(V’, E’)。若 V’ V 且
E’ E, 则称 图G‘ 是 图G 的子图。
8
带权图:即边上带权的图。其中权是指每条边可以标上 具有某种含义的数值(即与边相关的数)。 网 络: =带权图 连通图: 在无向图中, 若从顶点v1到顶点v2有路径, 则称顶点v1
18
对邻接点的操作
FirstAdjVex(G, v);
// 返回 v 的“第一个邻接点” 。若该顶点 //在 G 中没有邻接点,则返回“空”。
NextAdjVex(G, v, w); // 返回 v 的(相对于 w 的) “下一个邻接
// 点”。若 w 是 v 的最后一个邻接点,则 // 返回“空”。
例1:无向图的邻接矩阵
v1 A v4 v3 v5 v2
顶点表: ( v1 v2 v3 v4 v5 ) 邻接矩阵:
A.Edge =
0 0 1 0 0 1 0
1 0 0 0 1 0 1 0
0 0 1 0 0 1 0 1
0 1 0 0 1 0 1 0
0 0 1 0 1 1 0 0
v1 v2 v3 v4 v5
A.Edge =
注:在有向图的邻接矩阵中, 第i行含义:以结点vi为尾的弧(即出度边); 第i列含义:以结点vi为头的弧(即入度边)。
分析1:有向图的邻接矩阵一般是不对称的。 分析2:顶点的出度=第i行元素之和,OD( Vi )= A.Edge[ i ][j ]
顶点的入度=第i列元素之和。ID( Vi )= A.Edge[ j ][i ] 顶点的度=第i行元素之和+第i列元素之和, 即:TD(Vi)=OD( Vi ) + ID( Vi )
9
邻接点: 若 (u, v) 是 E(G) 中的一条边,则称 u 与 v 互为邻接点 有向边<u, v>称为弧,弧的始点u叫弧尾,终点v叫弧头 弧头和弧尾: 度、入度和出度:顶点v的度是与它相关联的边的条数。记作TD(v)。
在有向图中, 顶点的度等于该顶点的入度与出度之和。 顶点 v 的入度是以 v 为终点的有向边的条数, 记作 ID(v); 顶点 v 的出度是以 v 为始点的有向边的条数, 记作 OD(v)。
2
第 7章 图
7.1 7.2 7.3 7.4 7.5 7.6 图的定义和术语 图的存储结构 图的遍历 图的连通性问题 有向无环图及其应用 最短路径
3
7.1 图的定义和术语
图:记为 G=( V, E ) 其中:V 是G的顶点集合,是有穷非空集; E 是G的边集合,是有穷集。
V=vertex E=edge
树的边是最少的。
10
路径:在图 G=(V, E) 中, 若从顶点 vi 出发, 沿一些边经过一些
顶点 vp1, vp2, …, vpm,到达顶点vj。则称顶点序列 ( vi vp1 vp2 ... vpm vj ) 为从顶点vi 到顶点 vj 的路径。它经过的边(vi, vp1)、(vp1, vp2)、...、(vpm, vj)应当是属于E的边。
例 1 3 2 5 4 7 6
G2
路径:1,2,5,7,6,5,2,3 路径长度:7 简单路径:1,2,5,7,6 回路:1,2,5,7,6,5,2,1 简单回路:1,2,3,1
13
例 2 1 4 3 5
连通图
6
例 3
5 6
强连通图
例 2 1 4 3 5 6
非连通图 连通分量
14
图的抽象数据类型
4
证明:
①完全无向图有n(n-1)/2 条边。 证明:若是完全无向图,则顶点1必与所有其他顶点各有1条连 线,即有n-1条边,顶点2有n-2条边,…,顶点n-1有1条边,顶点 n有0条边. 总边数= n-1+ n-2+…+1+0=(n-1+0)n/2= n(n-1)/2 ② 完全有向图有n(n-1)条边。 证明:若是完全有向图,则顶点1必与所有其他顶点各有2条连 线,即有2(n-1)条边, 顶点2有2(n-2)条边,…,顶点n-1有2条 边,顶点n有0条边. 总边数=2( n-1+ n-2+…+1+0)=2(n-1+0)n/2= n(n-1)
无向完全图
5
3
6
图与子图 例 1 3 2 5 4 7 6 1 例 2 4 3 5 6
G2 顶点5的度:3 顶点2的度:4
G1
顶点2入度:1 出度:3 顶点4入度:1 出度:0
12
例 2 1 4 3
G1
5 6
路径:1,2,3,5,6,3 路径长度:5 简单路径:1,2,3,5 回路:1,2,3,5,6,3,1 简单回路:3,5,6,3
与v2是连通的。如果图中任意一对顶点都是连通的, 则称此图是连通图。 非连通图的极大连通子图叫做连通分量。 vi到vj和从vj到vi的路径, 则称此图是强连通图。 非强连通图的极大强连通子图叫做强连通分量。
在有向图中, 若对于每一对顶点vi和vj, 都存在一条从 强连通图:
有两类图形 不在本章讨 论之列:
义不同! InsertVex ( &G, v); 初始条件:图G存在,v和图中顶点有相同特征。 操作结果:在图G中添加新顶点。 ………………(参见P156-157)
}
15
基本操作
结构的建立和销毁 对顶点的访问操作
Hale Waihona Puke 插入或删除顶点插入和删除弧
对邻接点的操作
遍历
16
结构的建立和销毁
CreatGraph(&G, V, VR):
19
插入或删除顶点
InsertVex(&G, v);
//在图G中增添新顶点v。
DeleteVex(&G, v);
// 删除G中顶点v及其相关的弧。
20
插入和删除弧
InsertArc(&G, v, w); // 在G中增添弧<v,w>,若G是无向的, //则还增添对称弧<w,v>。 DeleteArc(&G, v, w); //在G中删除弧<v,w>,若G是无向的, //则还删除对称弧<w,v>。
图的特点:非线性结构(m :n )
(多个顶点,无序可言) 顺序存储结构: 无! 但可用数组描述元素间关系。
链式存储结构: 可用多重链表
• 邻接表 • 十字链表 • 邻接多重表
设计为邻接矩 阵
重点介绍: 邻接矩阵(数组)表示法
邻接表(链式)表示法
23
一、邻接矩阵(数组)表示法
建立一个顶点表(记录各个顶点信息)和一个邻接矩阵(表 示各个顶点之间关系)。 设图 A = (V, E) 有 n 个顶点,则图的邻接矩阵是一个二维数 组 A.Edge[n][n],定义为:
图G1中:V(G1)={1,2,3,4,5,6} E(G1)={<1,2>, <2,1>, <2,3>, <2,4>, <3,5>, <5,6>, <6,3>} 例 1
3 2
5
4
7
6
G2 图G2中:V(G2)={1,2,3,4,5,6,7} E(G1)={(1,2), (1,3), (2,3), (2,4),(2,5), (5,6), (5,7)}
25
特别讨论 :网(即有权图)的邻接矩阵
定义为: A.Edge[ i ][ j ]= Wij ∞ <vi, vj> 或(vi, vj)∈VR 无边(弧)
以有向网为例:
v1 N 3 v6 1 v5 5
7
6 5
顶点表: ( v1 v2 v3 v4 v5 v6 ) ∞5 ∞5∞ 7 ∞ ∞∞ ∞∞7∞ v2 邻接矩阵: ∞ 4 N.Edge = ∞ ∞∞ ∞∞ ∞ 44 ∞∞∞∞∞ 8 ∞ 8∞ ∞ ∞9 9 8 ∞∞ ∞∞∞ v3 9 ∞∞ ∞∞ ∞ ∞ 55 ∞∞∞∞ 6 6 5 ∞∞ ∞∞ ∞ 5 ∞∞∞ ∞ 5∞ v4 ∞ 3∞ ∞ ∞1 ∞ 1∞ 3 ∞∞ ∞
问:当有向图中仅1个顶点的入度为0,其余顶点的 入度均为1,此时是何形状? 答:是树!而且是一棵有向树!
生成树:是一个极小连通子图,它含有图中全部顶点,但只有n-1
条边。 如果在生成树上添加1条边,必定构成一个环。 若图中有n个顶点,却少于n-1条边,必为非连通图。
由若干棵生成树组成,含全部顶点,但构成这些 生成森林:
问:当E(G)为空时,图G存在否? 答:还存在!但此时图G只有顶点而没有边。
有向图: 图G中的每条边都是有方向的;弧 <v,w> 无向图: 图G中的每条边都是无方向的;边 (v,w) 完全图: 图G任意两个顶点都有一条边相连接;
相关文档
最新文档