数据结构(第8章)

合集下载

(完整word版)数据结构 第八章排序

(完整word版)数据结构 第八章排序

第八章排序:习题习题一、选择题1.在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是( )。

A.希尔排序B.冒泡排序C.插入排序D.选择排序2.设有1000个无序的记录,希望用最快的速度挑选出其中前10个最大的记录,最好选用( )排序法。

A.冒泡排序B.快速排序C.堆排序D.基数排序3.在待排序的记录序列基本有序的前提下,效率最高的排序方法是( )。

A.插入排序B.选择排序C.快速排序D.归并排序’4.不稳定的排序方法是指在排序中,关键字值相等的不同记录的前后相对位置( )。

A.保持不变B.保持相反C.不定D.无关5.内部排序是指在排序的整个过程中,全部数据都在计算机的( )中完成的排序。

A. 内存储器B.外存储器C.内存储器和外存储器D.寄存器6.用冒泡排序的方法对n个数据进行排序,第一趟共比较( )对记录。

A.1B.2C.n-lD.n7.直接插入排序的方法是从第( )个记录开始,插入前边适当位置的排序方法。

A.1B.2C.3D.n8.用堆排序的方法对n个数据进行排序,首先将n个记录分成( )组。

A.1B.2C.n-lD.n9.归并排序的方法对n个数据进行排序,首先将n个记录分成( )组,两两归并。

A.1B.2C.n-lD.n10.直接插入排序的方法要求被排序的数据( )存储。

A.必须是顺序B.必须是链表C.顺序或链表D.二叉树11.冒泡排序的方法要求被排序的数据( )存储。

A.必须是顺序B.必须是链表C.顺序或链表D.二叉树12.快速排序的方法要求被排序的数据( )存储。

A.必须是顺序B.必须是链表C.顺序或链表D.二叉树13.排序方法中,从未排序序列中依次取出记录与已排序序列(初始时为空)中的记录进行比较,将其放入已排序序列的正确位置上的方法,称为( )。

A.希尔排序B.冒泡排序C.插入排序D.选择排序14.每次把待排序的记录划分为左、右两个子序列,其中左序列中记录的关键字均小于等于基准记录的关键字,右序列中记录的关键字均大于基准记录的关键字,则此排序方法叫做( )。

《数据结构(C语言版 第2版)》(严蔚敏 著)第八章练习题答案

《数据结构(C语言版 第2版)》(严蔚敏 著)第八章练习题答案

《数据结构(C语言版第2版)》(严蔚敏著)第八章练习题答案第8章排序1.选择题(1)从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列的正确位置上的方法,这种排序方法称为()。

A.归并排序B.冒泡排序C.插入排序D.选择排序答案:C(2)从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端的方法,称为()。

A.归并排序B.冒泡排序C.插入排序D.选择排序答案:D(3)对n个不同的关键字由小到大进行冒泡排序,在下列()情况下比较的次数最多。

A.从小到大排列好的B.从大到小排列好的C.元素无序D.元素基本有序答案:B解释:对关键字进行冒泡排序,关键字逆序时比较次数最多。

(4)对n个不同的排序码进行冒泡排序,在元素无序的情况下比较的次数最多为()。

A.n+1B.n C.n-1D.n(n-1)/2答案:D解释:比较次数最多时,第一次比较n-1次,第二次比较n-2次……最后一次比较1次,即(n-1)+(n-2)+…+1=n(n-1)/2。

(5)快速排序在下列()情况下最易发挥其长处。

A.被排序的数据中含有多个相同排序码B.被排序的数据已基本有序C.被排序的数据完全无序D.被排序的数据中的最大值和最小值相差悬殊答案:C解释:B选项是快速排序的最坏情况。

(6)对n个关键字作快速排序,在最坏情况下,算法的时间复杂度是()。

A.O(n)B.O(n2)C.O(nlog2n)D.O(n3)答案:B解释:快速排序的平均时间复杂度为O(nlog2n),但在最坏情况下,即关键字基本排好序的情况下,时间复杂度为O(n2)。

(7)若一组记录的排序码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为()。

A.38,40,46,56,79,84B.40,38,46,79,56,84C.40,38,46,56,79,84D.40,38,46,84,56,79答案:C(8)下列关键字序列中,()是堆。

数据结构 第8章

数据结构 第8章

数据结构第8章在数据结构的学习旅程中,第8 章往往会带来一些新的概念和挑战。

这一章通常会深入探讨一些复杂但实用的数据结构,为我们解决实际问题提供更多有力的工具。

让我们先来谈谈第 8 章可能会涉及到的一种重要数据结构——树。

树是一种分层的数据结构,它就像一棵倒立的树,有一个根节点,然后从根节点向下延伸出许多分支,每个分支又可以继续延伸出子分支。

树的结构使得数据的存储和检索变得更加高效。

比如二叉树,它的每个节点最多只有两个子节点,左子节点和右子节点。

通过合理的构建和遍历算法,我们可以快速地查找、插入和删除节点中的数据。

在实际应用中,树结构有着广泛的用途。

比如文件系统的目录结构就是一种树状结构。

从根目录开始,一级一级地向下展开,每个文件夹都可以看作是树的一个节点。

还有决策树,在机器学习和数据分析中经常被用到。

它通过一系列的条件判断,将数据逐步分类,帮助我们做出决策。

除了树,第 8 章可能还会讲到图。

图是一种更加复杂但强大的数据结构,它由顶点和边组成。

顶点表示对象,边表示顶点之间的关系。

图可以分为有向图和无向图。

有向图中的边是有方向的,而无向图中的边没有方向。

图的应用场景也非常丰富。

比如社交网络,每个人可以看作是一个顶点,人与人之间的关系就是边。

通过分析图的结构,我们可以了解社交网络中的信息传播、社区结构等。

在交通网络中,城市是顶点,道路是边,利用图算法可以找到最优的路径规划。

另外,第 8 章可能还会涉及到一些针对树和图的算法。

比如树的遍历算法,常见的有前序遍历、中序遍历和后序遍历。

这些遍历算法可以帮助我们按照特定的顺序访问树中的节点,从而实现对树中数据的处理。

对于图,最短路径算法是非常重要的,比如迪杰斯特拉算法和弗洛伊德算法,它们可以帮助我们在图中找到两个顶点之间的最短路径。

在学习第 8 章的过程中,可能会遇到一些困难。

因为这些数据结构和算法相对复杂,需要我们有较强的逻辑思维和抽象能力。

但是,只要我们坚持不懈,多做练习,通过实际的编程实现来加深对这些概念的理解,就一定能够掌握。

《数据结构》第八章习题参考答案 (1)

《数据结构》第八章习题参考答案 (1)
邻接表表示时:无向图的任意顶点的度=顶点所对应边结点链表中结点个数;
有向图的任意顶点的度=邻接表中顶点所对应边链表中结点个数+逆邻接表中顶点所对应边链表中结点个数;
4、课本P3928.3题
【解答】
n个顶点的无向连通图至少有n-1条边,n个பைடு நூலகம்点的无向强连通图至少有n(n-1)/2条边;n个顶点的有向连通图至少有n条边,n个顶点的有向强连通图至少有n(n-1)条边。
上面不正确的是(A)。
A.(1),(2),(3) B.(1) C.(1),(3) D.(2),(3)
5、下列说法不正确的是(C)。
A.图的遍历是从给定的源点出发每一个顶点仅被访问一次
B.遍历的基本算法有两种:深度遍历和广度遍历
C.图的深度遍历不适用于有向图
D.图的深度遍历是一个递归过程
三、填空题
1、判断一个无向图是一棵树的条件是_有n个顶点,n-1条边的无向连通图_。
注: 答案并不唯一
2、课本P3928.1题
【解答】
(1)不是强连通图
(2)简单路径如:D->B->C->F
(3)略
(4)邻接表见图,其他略
3、课本P3928.2题
【解答】
(1)邻接矩阵表示:无向图的边数为
矩阵中非零元素的个数/2;有向图的边数为矩阵中非零元素的个数。
邻接表表示时:无向图的边数为邻接表中边结点的个数/2;有向图的边数为邻接表中边结点的个数。
(2)(3)略
12、课本P3958.24题
【解答】
A->B : 10
A->B->D: 15
A->B->D->C : 17
A->B->D->E : 17

数据结构第八章_排序

数据结构第八章_排序

49 38 65 97 76
三趟排序:4 13 27 38 48 49 55 65 76 97
算法描述
#define T 3 int d[]={5,3,1};
例 13 48 97 55 76 4 13 49 27 38 65 49 27 38 65 48 97 55 76 4 j j j
j
j
i
例 初始: 49 38 65 97 76 13 27 48 55 4 取d1=5 49 38 65 97 76 13 27 48 55 4 一趟分组:
一趟排序:13 27 48 55 4 取d2=3 13 27 48 55 4 二趟分组:
49 38 65 97 76 49 38 65 97 76
二趟排序:13 4 48 38 27 49 55 65 97 76 取d3=1 13 27 48 55 4 三趟分组:
初始时令i=s,j=t
首先从j所指位置向前搜索第一个关键字小于x的记录,并和rp
交换 再从i所指位置起向后搜索,找到第一个关键字大于x的记录, 和rp交换 重复上述两步,直至i==j为止 再分别对两个子序列进行快速排序,直到每个子序列只含有 一个记录为止
快速排序演示
算法描述
算法评价

38 49 49 38 65 76 97 13 97 76 97 27 13 30 97 27 97 30 初 始 关 键 字
38 49 65 13 76 27 76 13 30 76 27 76 30 97 第 一 趟
38 49 13 65 27 65 13 30 65 27 65 30
38 13 49
时间复杂度
最好情况(每次总是选到中间值作枢轴)T(n)=O(nlog2n) 最坏情况(每次总是选到最小或最大元素作枢轴)

数据结构之第8章 广义表

数据结构之第8章  广义表

3. 建立广义表的链式存储结构
假定广义表中的元素类型ElemType为char类型,
每个原子的值被限定为英文字母。
并假定广义表是一个表达式,其格式为:元素之
间用一个逗号分隔,表元素的起止符号分别为左、右
圆括号,空表在其圆括号内不包含任何字符。例如
“(a,(b,c,d))”就是一个符合上述规定的广义表格式。
/*广义表结点类型定义*/
广义表的两种基本情况 :
g2 1

g1
1

∧*Βιβλιοθήκη * 第 1 个元素**

*
*

第 2 个元素
第 n 个元素
(a)空表
(b)非空表
为原子的情况 :
g3 0 a

8.3 广义表的运算
1. 求广义表的长度 在广义表中,同一层次的每个结点是通过link域
链接起来的,所以可把它看做是由link域链接起来的
{ h->tag=1;
/*新结点作为表头结点*/
h->val.sublist=CreatGL(s); /*递归构造子表并链到表头结点*/ }
else if (ch==')') h=NULL; /*遇到')'字符,子表为空*/ else { h->tag=0; /*新结点作为原子结点*/ h->val.data=ch; } } else h=NULL; ch=*s; s++; if (h!=NULL) if (ch==',') h->link=CreatGL(s); else h->link=NULL; return h; }
单链表。这样,求广义表的长度就是求单链表的长度,

(完整版)数据结构与算法第8章答案

(完整版)数据结构与算法第8章答案

第8 章排序技术课后习题讲解1. 填空题⑴排序的主要目的是为了以后对已排序的数据元素进行()。

【解答】查找【分析】对已排序的记录序列进行查找通常能提高查找效率。

⑵对n个元素进行起泡排序,在()情况下比较的次数最少,其比较次数为()。

在()情况下比较次数最多,其比较次数为()。

【解答】正序,n-1,反序,n(n-1)/2⑶对一组记录(54, 38, 96, 23, 15, 72, 60, 45, 83)进行直接插入排序,当把第7个记录60插入到有序表时,为寻找插入位置需比较()次。

【解答】3【分析】当把第7个记录60插入到有序表时,该有序表中有2个记录大于60。

⑷对一组记录(54, 38, 96, 23, 15, 72, 60, 45, 83)进行快速排序,在递归调用中使用的栈所能达到的最大深度为()。

【解答】3⑸对n个待排序记录序列进行快速排序,所需要的最好时间是(),最坏时间是()。

【解答】O(nlog2n),O(n2)⑹利用简单选择排序对n个记录进行排序,最坏情况下,记录交换的次数为()。

【解答】n-1⑺如果要将序列(50,16,23,68,94,70,73)建成堆,只需把16与()交换。

【解答】50⑻对于键值序列(12,13,11,18,60,15,7,18,25,100),用筛选法建堆,必须从键值为()的结点开始。

【解答】60【分析】60是该键值序列对应的完全二叉树中最后一个分支结点。

2. 选择题⑴下述排序方法中,比较次数与待排序记录的初始状态无关的是()。

A插入排序和快速排序B归并排序和快速排序C选择排序和归并排序D插入排序和归并排序【解答】C【分析】选择排序在最好、最坏、平均情况下的时间性能均为O(n2),归并排序在最好、最坏、平均情况下的时间性能均为O(nlog2n)。

⑵下列序列中,()是执行第一趟快速排序的结果。

A [da,ax,eb,de,bb] ff [ha,gc]B [cd,eb,ax,da] ff [ha,gc,bb]C [gc,ax,eb,cd,bb] ff [da,ha]D [ax,bb,cd,da] ff [eb,gc,ha]【解答】A【分析】此题需要按字典序比较,前半区间中的所有元素都应小于ff,后半区间中的所有元素都应大于ff。

数据结构第八章习题及答案

数据结构第八章习题及答案

习题八查找一、单项选择题1.顺序查找法适合于存储结构为()的线性表。

A. 散列存储B. 顺序存储或链式存储C. 压缩存储D. 索引存储2.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。

A. (n-1)/2 B. n/2 C. (n+1)/2 D. n3.适用于折半查找的表的存储方式及元素排列要求为( )A.链接方式存储,元素无序 B.链接方式存储,元素有序C.顺序方式存储,元素无序 D.顺序方式存储,元素有序4.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度( )A.必定快 B.不一定 C. 在大部分情况下要快 D.取决于表递增还是递减5.当采用分块查找时,数据的组织方式为 ( )A.数据分成若干块,每块内数据有序B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块D.数据分成若干块,每块(除最后一块外)中数据个数需相同6.二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。

这种说法()。

A.正确 B. 错误7. 二叉查找树的查找效率与二叉树的((1) )有关,在((2) )时其查找效率最低。

(1): A. 高度 B. 结点的多少 C. 树型 D.结点的位置(2): A. 结点太多B. 完全二叉树C.呈单枝树D. 结点太复杂。

8.如果要求一个线性表既能较快的查找,又能适应动态变化的要求,则可采用( )查找法。

A. 分快查找B. 顺序查找 C. 折半查找D.基于属性9.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是( )。

A.(100,80,90, 60, 120,110,130) B.(100,120,110,130,80, 60, 90) C.(100,60, 80, 90, 120,110,130) D. (100,80,60, 90, 120,130,110)10.下图所示的4棵二叉树,( )是平衡二叉树。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

13
(14)强连通图、强连通分量:对于有向图来说,若图中任意一 对顶点vi 和vj(i≠j)均有从一个顶点vi到另一个顶点vj有路径,也 有从vj到vi的路径,则称该有向图是强连通图。有向图的极大强 连通子图称为强连通分量。 对有向图G2 不是强连通的,它有两个强连通分量,分别是 {v1,v2,v3}和{v4},如下图所示。
17
8.2 图的存储表示



邻接矩阵! 邻接表! 十字链表 邻接多重表
18
1、邻接矩阵(Adjacency
8.2.1 邻接矩阵
Matrix)存储结构的存储思想:
(1) 图中顶点顺序存储;
(2) 用一个n*n矩阵(设图有n个顶点)来存储任意两个顶点之 间边的信息,也就是各顶点之间的邻接关系。
14
(15)生成树 : 所谓连通图G的生成树,是G的包含其全部n 个 顶点的一个极小连通子图。它必定包含且仅包含G的n-1条边。 下图示出了图G1 的一棵生成树。
(16)生成森林。在非连通图中,由每个连通分量都可得到一个
极小连通子图,即一棵生成树。这些连通分量的生成树就组成 了一个非连通图的生成森林。
⑾LocateVex(G,u)在图G中找到顶点u,返回该顶点在图中位置。 ⑿FirstAdjVex(G,v)在图G中,返回v的第一个邻接点。 若顶点在G中没有邻接顶点,则返回“空”。 ⒀NextAdjVex(G,v,w)在图G中,返回v的(相对于w的) 下一个邻接 顶点。若w是v的最后一个邻接点,则返回“空”。
若G是网图,则邻接矩阵可定义为:
其中,wij表示边(vi,vj)或<vi,vj>上的权值;∞表示一个计算机 允许的、大于所有边上权值的数。
19
例:用邻接矩阵表示法表示的无向图和网图如下图所示。
20
2、邻接矩阵存储的特点: ①无向图的邻接矩阵一定是一个对称矩阵。因此,在具体存 放邻接矩阵时只需存放上(或下)三角矩阵的元素即可。 ②对于无向图,邻接矩阵的第i行(或第i列)非零元素(或 非∞元素)的个数正好是第i个顶点的度TD(vi)。 ③对于有向图,邻接矩阵的第i行(或第i列)非零元素(或 非 ∞ 元 素 ) 的 个 数 正 好 是 第 i 个 顶 点 的 出 度 OD(vi) ( 或 入 度 ID(vi))。 ④用邻接矩阵方法存储图,很容易确定图中任意两个顶点之 间是否有边相连。 ⑤邻接矩阵存储图的局限性:要确定图中有多少条边,则必 须按行、按列对每个元素进行检测,所花费的时间代价很大。
第八章
⒈教学内容:
8.1 图的基本概念 8.2 图的存储表示 8.3 图的遍历 8.4 最小生成树 8.5 最短路径 8.6 有向无环图及其应用

⒉教学目的:
⑴ ⑵ ⑶ ⑷ ⑸ 理解图的基本概念及术语; 掌握图的两种存储结构(邻接矩阵和邻接表)的表示方法; 熟练掌握图的两种遍历的算法思想、步骤; 理解最小生成树的概念,能按Prim算法构造最小生成树; 领会并掌握拓扑排序、关键路径、最短路径的算法思想。
22
4、 对于带权图,存储的是边的权值: #define MaxVertexNum … //根据实际需要设定的最大顶点数 typedef char VertexType; //顶点类型设为字符型 typedef int EdgeType; //边的权值设为整型 typedef struct { VertexType vexs[MaxVertexNum]; //顶点表 EdeType edges[MaxVertexNum][MaxVertexNum];
9
边上带权的图称为网图或网络。 如果边是有方向的带权图,就是一个有向网图。
10
(9) 路径、路径长度 顶点vp到顶点vq之间的路径是指顶点序列vp,vi1,vi2, …, vim,vq 。其中,(vp,vi1),(vi1,vi2),…,(vim,vq)分别为图中的边。路径 上边的数目称为路径长度。
24
8.2.2 邻接表
邻接表(Adjacency List)是图的一种顺序存储与链式 存储结合的存储方法。邻接表表示法类似于树的孩子链表表 示法。 1、存储思想: 对于图G中的每个顶点vi,将所有邻接于vi的顶点vj链 成一个单链表,这个单链表就称为顶点vi的邻接表,再将
所有点的邻接表表头放到数组中,就构成了图的邻接表。
15
⑴CreatGraph(G):输入图G的顶点和边,建立图G的存储。 ⑵DestroyGraph(G):释放图G占用的存储空间。 ⑶GetVex(G,v):在图G中找到顶点v,并返回顶点v的相关信息。 ⑷PutVex(G,v,value): 在图G中找到顶点v,并将value值赋给顶点v。 ⑸InsertVex(G,v):在图G中增添新顶点v。 ⑹DeleteVex(G,v): 在图G中,删除顶点v以及所有和顶点v相关联的边或弧。 ⑺InsertArc(G,v,w): 在图G中增添一条从顶点v到顶点w的边或弧。 ⑻DeleteArc(G,v,w): 在图G中删除一条从顶点v到顶点w的边或弧。
5
2.图的相关术语 ⑴无向图: ⑵有向图: 有向图的边用<vi, vj>表示; 注意:<vi,vj>和<vj,vi>不是同一条边; 有向边也称为弧,箭头一端成为弧头,另一端为弧尾。 例:图8-2所示是一个有向图G2。 表示为: G2=(V2,E2) V2={v1,v2,v3,v4} E2={<v1,v2>,<v1,v3>,<v3,v4>,<v4,v1>}
7
显然,对于具有n个顶点、e条边的图,顶点的个数、顶 点vi的度TD (vi)、以及边的数目满足以下关系:
1 n e D(vi ) 2 i 1
8
(8) 边的权、网图 与边有关的数据信息称为权---实际问题中有实际物理意义。 比如: 在一个反映城市交通线路的图中,边上的权值可以表示该 条线路的长度或者等级; 对于一个电子线路图,边上的权值可以表示两个端点之间 的电阻、电流或电压值; 对于反映工程进度的图而言,边上的权值可以表示从前一 个工程到后一个工程所需要的时间等等。
6
(3) 无向完全图: 边的个数达到了最大:有n(n-1)/2条边。 (4) 有向完全图: 边的个数达到了最大:有n(n-1)条边。 (5) 稠密图、稀疏图: 若一个图接近完全图,称为稠密图;称 边数很少的图为稀疏图。 (6)邻接点、邻接至、邻接自 (7) 顶点的度、入度、出度: 顶点的度是指依附于某顶点v的边 数,通常记为TD (v)。 有向图中又有入度ID (v) 和出度OD (v) 。 TD (v)=ID (v)+OD (v)。
//邻接矩阵,即边表
int vnum,enum; }MGragh;
//顶点数和边数
//Maragh5、【算法8-1】建立一个有向图的邻接矩阵存储的算法 void CreateMGraph(MGraph *G){ //建立有向图G的邻接矩阵存储 int i,j,k; char ch; cout<<"请输入顶点数和边数(输入格式为:顶点数,边数):"<<endl; cin>>G->vnum>>G->enum; //输入顶点数和边数 cout<<"请输入顶点信息(输入格式为:顶点号<CR>):"<<endl; for(i=0;i<G->vnum;i++) cin>>G->vexs[i]; //输入顶点信息,建立顶点表 for(i=0;i<G->vnum;i++) for(j=0;j<G->vnum;j++) G->edges[i][j]=0; //初始化邻接矩阵 cout<<"请输入每条边对应的两个顶点的序号(输入格式为:i,j):"<<endl; for(k=0;k<G->enum;k++) { cin>>i>>j; //输入e条边,建立邻接矩阵 G->edges[i][j]=1; //若加入G->edges[j][i]=1;,则为无向图的邻接矩阵存储建立 } }//CreateMGraph
21
3、对邻接矩阵的实现描述如下: 用一个一维数组来存储顶点信息; 用一个二维数组存储邻接矩阵,用于表示顶点间相邻关系; 若图的顶点个数和边的个数是一个变量时,还需要留有足够的 空间。故可将其形式描述如下: #define MaxVertexNum … //根据实际需要设定的最大顶点数 typedef char VertexType; //顶点类型设为字符型 typedef struct { VertexType vexs[MaxVertexNum]; //顶点表 int edges[MaxVertexNum][MaxVertexNum]; //邻接矩阵 int vnum,enum; //顶点数和边数 }MGragh; //Maragh是以邻接矩阵存储的图类型
12
(12)连通的: 在无向图中,如果从一个顶点vi 到另一个顶点 vj(i≠j)有路径,则称顶点vi和vj是连通的。 (13)连通图、连通分量: 如果无向图中任意两顶点都是连通的 ,则称该图是连通图。无向图的极大连通子图称为连通分量。 对于一个连通图如图G1,连通分量就是它本身。 对于非连通图如G3 中有两个连通分量,如下图 (b)所示。
1
⒊教学重点: ⑴ 理解图的定义、术语及其含义; ⑵ 掌握各种图的邻接矩阵表示法及其类型说明; ⑶ 理解并掌握图的按深度优先搜索遍历方法和按广度优先搜索遍历方 法; ⑷ 领会生成树和最小生成树的概念; ⑸ 掌握由Prim算法思想构造最小生成树按Prim算法思想; ⑹ 领会拓扑序列和拓扑排序的概念; ⑺ 理解并掌握拓扑排序的算法思想; ⑻ 理解并掌握关键路径的算法思想; ⑼ 理解并掌握最短路径的算法思想。 ⒋教学难点:⑴ 正确理解与区别图的常用术语; ⑵ 区别图的两种存储结构的不同点及其应用场合; ⑶ 关键路径的算法思想; ⑷ 最短路径的算法思想。 ⒌学时安排: 12学时
相关文档
最新文档