数据结构-分析期末选择题考点(图)

我是梦中传彩笔

欲书花叶寄朝云


目录

图的常见考点(一)图的概念题

图的常见考点(二)图的邻接矩阵、邻接表

图的常见考点(三)拓扑排序

图的常见考点(四)关键路径

图的常见考点(五)最小生成树


契子


承接上回,我们来复习一下图 ~ 

图的知识点是比较多的,而且大部分都需要画图,但是由于章节靠后所以出难题的几率不是很大

大多数都是以基础题为主(比如说概念题、邻接矩阵、邻接表、最小生成树)

如果是机考的话,邻接表、最小生成树往往是不要求画图的,大概就是出个找正确图形的选择题

现在我来分析一下大概率会考到的题型:
<1>图的概念题(比如有图向、无图向,度与边的关系,深度优先、广度优先是什么序列的遍历)

<2>图的邻接矩阵、邻接表

<3>关键路径

<4>最小生成树


图的常见考点(一)图的概念题

在一个图中,所有顶点的度数之和等于图的边数的()倍
A. 1/2
B. 1
C. 2
D. 4

答案选择 C

解析:

有向图:

无向图:

无向图,顶点的度指依附该顶点的边的条数。 对于无向图,全部顶点的度之和等于边数的两倍,因为每条边和俩个顶点相关联。 对于有向图,顶点的度分出度和入度,某一顶点的度等于其入度和出度之和,全部顶点的入度之和和出度之和相等且等于边数,那么入度之和 + 出度之和 = 边数俩倍。因为每条有向边都有一个起点和终点。 总结:无论是有向图还是无向图,所有顶点度数之和等于所有边数的两倍


在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的()倍
A. 1/2
B. 1
C. 2
D. 4

答案选择 B

像这种图如果不会就画图​(因为题目给出的范围很广:所有顶点,所以你就画个简单的模型模拟一下便可)

如图所示:有向图所有顶点入度之和等于所有顶点出度之和


具有n个顶点的有向完全图有()条弧边
A、n(n-1)/2
B、n(n-1)
C、n(n+1)/2
D、n(n+1)

若每个顶点都有互相相反的两条弧连接,且具有 n 个顶点,n(n-1) 条弧的有向图则称为有向完全图(简单来讲,每个顶点都有对应的入度、出度,而且是满的状态 -- 不能再连,此时的弧便是最大值)

刚好这张图也能用,上图便是有向完全图

我们发现含有 4 个顶点的有向完全图中,共有 n(n-1)=4×3=12 条弧,所以是没有问题的

答案选择 B

既然有向图的最大弧数已经说了,那我们来谈一谈无向图的最大弧数(无向完全图的弧):n(n-1)/2 

我们可以简单的推正一下:

无向图我们可以拿两个结点举例,最大的弧便是 1,根据此时边与弧的关系可以推出:

最大弧数:n(n-1)/2 

有向图我们也可以拿两个结点举例,最大的弧便是 2,根据此时边与弧的关系可以推出:

最大弧数:n(n-1)

无向图中两结点之间连成一条直线
有向图中任意两个结点之间都有一对有向边

若从无向图的任意顶点出发进行一次深度优先搜索即可访问所有的顶点,则该图一定是()
A、强连通图
B、连通图
C、有回路
D、一棵树

答案选择 B

解析:

A、在一个有向图中,任意两个不同的顶点都存在相互之间的路径,则称为强连通图,与题意无向图不符

B、若无向图中任意两个结点都是连通的(任意两个结点之间有路径),则称该图为连通图,由于从任意顶点出发进行一次深度优先搜索即可访问所有的顶点,所以该图一定是连通图

C、回路不一定包含图的所有顶点

D、连通图可能是树,也可能存在环


下面关于图的存储的叙述中,哪一个是正确的?

A.用相邻矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关
B.用相邻矩阵法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关
C.用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关
D.用邻接表法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关

答案选择 A

用邻接表法存储图,占用的存储空间数与图中结点个数和边数都有关,因为邻接表就是记录相邻边结点之间的关系

用邻接矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关,因为所画图形的大小往往是根据结点数量定的(存储空间),而不是按边数定的


图的 BFS 生成树的树高比 DFS 生成树的树高()
A.小             B.相等              C.小或相等           D.大或相等

答案选择 A

对于一些特殊的图,比如只有一个顶点的图,其 BFS 生成树的树高和 DFS 生成树的树高相等。一般的图,根据图的 BFS 生成树和 DFS 树的算法思想, BFS 生成树的树高比 DFS 生成树的树高小


巳知无向图G含有16条边,其中度为4的顶点个数为3
度为3的顶点个数为4,其他顶点的度均小于3.图G所含的顶点个数至少是( )
A.10                B.11                   C.13                    D.15

答案选择 B

无向图边数的 2 倍等于各顶点度数的总和

由于其他顶点的度均小于3,设它们的度都为2,设它们的数量是 x

列出这方程 4x3 +3x4+ 2x= 16x2,解得 x=4

4+4+3=11

图的常见考点(二)图的邻接矩阵、邻接表

对该知识点不熟的先去翻翻课本 ~

一个具有n个顶点,e条边的无向图的邻接矩阵中,零元素的个数为()
A、n^2
B、n^2-2e
C、n+2e
D、e

首先:

无向图的邻接矩阵一定是 -- 对称矩阵,关于对角线对称,且主对角线一定为零,而无向完全图中,由于任意两个顶点之间都有边连接,所以除了邻接矩阵的主对角线外,其余元素都为 1

根据这个规律我们便可以知道:对于一个含有n个顶点,e条边的无向图,其邻接矩阵中元素为零的个数为 n^2 - 2e邻接矩阵元素数量 - 两条对角线的数量

答案选择 B


用邻接表表示图进行广度优先遍历时,通常借助()来实现算法
A. 栈
B. 队列
C. 树
D. 图

广度优先遍历相当于二叉树的层序遍历通常借助队列来实现算法

深度优先遍历相当于二叉树的先序遍历通常借助来实现算法

答案选择 B


已知图的邻接矩阵如图所示,则从顶点v0出发按深度优先遍历的结果是()
A. 0243156
B. 0136542
C. 0134256
D. 0361542

这道题大概率会考 ~ 不要问我为什么(凭一个程序员的直觉)

但是你也不要太紧张,我来教你怎么做,若是你还不懂就去逛逛 B 站

首先题目连邻接矩阵都给你了,你就可以通过邻接矩阵构建图:

我这里示范一下

<1>这个图一看就是有向图,我们只需要找到有 1 的位置到时候判断图中各结点之间关系

先大概画个草图(将结点标出来),然后再连关系

这里举个例子(拿邻接矩阵的第一行)

因为我们的邻接矩阵行代表出度、列代表入度

所以我们通过

像这样我们就可以画出 0 与其他结点之间的关系

然后重复以上步骤

最后画出来就是这个样子的,这里说从 v0 开始出发进行深度优先遍历

这里说一下规则:一条路走到黑,走不了就回溯,走路选择分支的时候取值最小的结点

我们从 0 开始,而 0 1 2 3 4 6 都有关系,但是 1 的值最小,所以我们选择 1

01

然后我们看 1 这个结点(注意这里不是按结点顺序来的而是按照当前结点的位置):1 0 3 6 有关系,但是 0 已经在序列了,最小节点为 3,那我们便走 3

013

我们看 3 这个这个结点,我们看图虽然我画的比较难看,但这正是通往成功的蓝图:31 0 5 4 都有联系,但是 1 0 都已经在序列了,其中最小结点 4 那么我们便选择 4

0134

我们看 4 这个这个结点,4 0 3 2 5 都有关系, 0 3 都已在序列,其中最小结点为 2 ,那么我们便选择 2 

01342

注意)我们看 2 这个这个结点,2 0 4 都有关系, 但是这些节点都以在序列怎么办呢?

这个时候我们就要开始回溯,回溯顾名思义就是往后退的意思:

我们的 2 回退4 这个结点,我们再来看,发现 4 还跟 5 有关系,所以下一步我们可以走 5

 

013425

这个时候答案基本上已经出来了,我就不继续往下讲了,记住做这种题的方法就是画图找关系(就那么简单)

正确答案: C

已知图的邻接表如图所示
则从顶点v0出发按广度优先遍历的结果是(),按深度优先遍历的结果是()
A.0 1 3 2                     0 2 3 1               
B.0 1 3 2                     0 3 2 1                      
C.0 2 3 1                     0 3 2 1                      
D.0 1 2 3                     0 1 2 3

这道题的思路跟上一题差不多,都是先根据图的邻接表构建出的模型,再进行遍历

这种题考的概率还是很大的 ~

废话不多说,直接开干

我们还是一步一步来吧:

先根据 V0 这一条关系画出一下图形

根据 V1 这条关系画出一下图形:

根据 V2 这条关系画出一下图形:

这样就画完了,关于为什么要这样画(去翻翻书吧)

由图可知,广度优先遍历是层序遍历,那么从 V0 开始的话就是

0 1 2 3

深度优先与我们上题的操作一样:
01 2 3 有关系,1 结点最小,先走 1

0 1

这道题那么就简单了,就直接讲吧,1 只与 2 0 有关系,只能走 22 只与 3 0 有关系,只能走 3

所以:

0 1 2 3

正确答案: D

设连通图G中的边集E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)}
则从顶点a出发得不到一种深度优先遍历的顶点序列为()
A. abedfc
B. acfebd
C. aebdfc
D. aedfcb

虽然这道题没有给任何的图形,但是它依旧是一道画图题

我们要根据表达式画出图形,再根据深度优先遍历去判断结果

画图的图形如下图所示:

由于只是连通图,所以我们不需要画箭头要保证路径之间不能交叉

我现在说明一下这道题到底再考什么:什么时候需要

回溯规则:有路走优先走路没路走才会回溯

别的不说,我们先来分析一下 A 选项

abedfc

a->b->e>d->f->c 有路走(一条线直接通,看图说话)所以是可行的

B 选项:

acfebd

a->c->f 都没有问题,但是这里在 f 位置竟然回溯了,我们深度优先遍历的规则是有路走优先走路没路走才会回溯,但是这里路没走完就回溯了(f->d),所以是错误

C选项:

 aebdfc

a->e->b 没有问题,到 b 就没有路走了,所以 b 回溯到 e,e->d->f->c 有路走,所以可行

D选项:

aedfcb

a->e->d->f->c 都没有问题,到 c 就没有路走了,c 可以回溯到 a 再走 b,所以是可行的

正确答案: B

讲到这里我们邻接矩阵、邻接表的题型就已经讲完了

图的常见考点(三)拓扑排序

已知有向图G=(V,E)
其中V={V1,V2,V3,V4,V5,V6,V7},
E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V3,V5>,<V3,V6>,<V4,V6>,<V5,V7>,<V6,V7>}
则G的拓扑序列是()
A、V1,V3,V4,V6,V2,V5,V7
B、V1,V3,V2,V6,V4,V5,V7
C、V1,V3,V4,V5,V2,V6,V7
D、V1,V2,V5,V3,V4,V6,V7

先来介绍一下拓扑排序:

在图论中,由一个有向无环图的顶点组成的序列,当且仅当满足下列条件时,称为该图的一个拓扑排序


(1)每个顶点出现且只出现一次
(2)若A在序列中排在B的前面,则在图中不存在从B到A的路径

此拓扑排序的思想是:

(1)从有向图中选取一个没有前驱的顶点,并输出之

(2)从有向图中删去此顶点以及所有以它为尾的弧

以上便是拓扑排序的步骤:

所以这依然是一道画图题,所以开局依旧是将我们的图画出来

第一步: 删除V1

第二步: 可选的没有前驱的点有V2,V3,V4

第三步 :假如下一步选择的是V3,则删除V3,可选的有V2,V4

第四步: 假如选择的是V2,则删除V2, 可选的有V4,V5(所以答案B错误了)

第五步: 假如选择的是V4,则删除V4,可选的有V5,V6

第六步: 假如选择的是V5,则删除V5, 剩余就是V6->V7

所以排序为:V1,V3,V2,V4,V5,V6,V7

根据以上思路,可以推出只有答案 A 才是对的

正确答案: A

设有向无环图G中的有向边集合E={<1,2>,<2,3>,<3,4>,<1,4>}
则下列属于该有向图G的一种拓扑排序序列的是()
A. 1,2,3,4 
B. 2,3,4,1
C. 1,4,2,3
D. 1,2,4,3

首先画图:

第一步: 删除 1

第二步: 删除 2

第三步: 删除 3

所以排序为:1 2 3 4

正确答案: A

 图的常见考点(四)关键路径

(多选)下面关于关键路径的说法正确的是()
A、求关键路径是以拓扑排序为基础的
B、关键活动一定位于关键路径上
C、一个事件的最早发生时间与以该事件为始的弧的活动的最早开始时间相同
D、一个事件的最迟发生时间是以该事件为尾的弧的活动的最迟开始时间与该活动的持续时间的差

正确答案: A、B、C
在AOE网中,由源点到汇点的有向路径可能有多条,从而完成活动的路径长度也不同,将所有路径中具有最大路径长度的路径称为关键路径,且这条路径上的所有活动称为关键活动,是决定整个工程的关键因素,关键路径是整个工程所完成的最短时间

一个事件的最迟发生时间为vl(k)=min{vl(j)-weight(vk,vj)},其中vk为vj的任意前驱,即等于取【以该事件为尾的弧的活动的最迟开始时间】与【最迟结束时间与该活动的持续时间的差】的最小值

(多选)下面的()方法可以判断出一个有向图是否有环(回路)
A、深度优先遍历
B、拓扑排序
C、求最短路径
D、求关键路径

 正确答案: A、B、D

(1)图的深度优先搜索,类似树的先序遍历,先访问结点,然后递归向外层结点遍历,尽可能深地搜索一个图,在生成树中访问到的顶点会是起始顶点的子孙,所以可以判断是否有环

(2)拓扑排序中是选择一个没有前驱,即入度 ID(v)=0的 顶点进行下去,而存在环时环的顶点是某边的起始,从而无法加入拓扑序列,无法找到下一个顶点删除时即可以判断是否有环

(3)关键路径能否判断一个图有环,则存在一些争议。关键路径本身虽然不允许有环,但求家关键路径的算法本身无法判断是否有环,判断是否有环是求关键路径拓扑排序

 图的常见考点(五)最小生成树

给定有权无向图的邻接矩阵如下,其最小生成树的总权重是()
A.24
B.23
C.18
D.17

实在不会就画图吧

跟我们邻接矩阵一样,无穷符号代表没有关系,然后有关系的地方要标权值

然后我们找到最小生成树,简单来说就是哪边值小搞那边,最后相加权值最小就行

实在不会就去翻翻课本Kruskal算法 + Prim算法)

 正确答案: B

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/756592.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

List接口, ArrayList Vector LinkedList

Collection接口的子接口 子类Vector&#xff0c;ArrayList&#xff0c;LinkedList 1.元素的添加顺序和取出顺序一致&#xff0c;且可重复 2.每个元素都有其对应的顺序索引 方法 在index 1 的位置插入一个对象&#xff0c;list.add(1,list2)获取指定index位置的元素&#…

【你也能从零基础学会网站开发】认识数据库和数据库中的基本概念

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;程序猿、设计师、技术分享 &#x1f40b; 希望大家多多支持, 我们一起学习和进步&#xff01; &#x1f3c5; 欢迎评论 ❤️点赞&#x1f4ac;评论 &#x1f4c2;收藏 &#x1f4c2;加关注 学习目标 认识…

VMware ESXi 8.0U3 macOS Unlocker OEM BIOS 集成驱动版,新增 12 款 I219 网卡驱动

VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS 集成驱动版&#xff0c;新增 12 款 I219 网卡驱动 VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动版) 发布 ESXi 8.0U3 集成驱动版&#xff0c;在个人电脑上运行企业级工作负载 请访…

【51单片机入门】速通定时器

文章目录 前言定时器是什么初始化定时器初始化的大概步骤TMOD寄存器C/T寄存器 触发定时器中断是什么中断函数定时器点亮led 总结 前言 在嵌入式系统的开发中&#xff0c;定时器是一个非常重要的组成部分。它们可以用于产生精确的时间延迟&#xff0c;或者在特定的时间间隔内触…

Solr安装IK中文分词器

Solr安装IK中文分词器 如何安装Solr与导入数据&#xff1f;为什么要安装中文分词器下载与安装IK分词器1.1、下载IK分词器1.2、安装IK  第一步&#xff1a;非常简单&#xff0c;我们直接将在下的Ik分词器的jar包移动到以下文件夹中  第二步&#xff1a;修改Core文件夹名下\c…

linux的常用系统维护命令

1.ps显示某个时间点的程序运行情况 -a &#xff1a;显示所有用户的进程 -u &#xff1a;显示用户名和启动时间 -x &#xff1a;显示 没有控制终端的进程 -e &#xff1a;显示所有进程&#xff0c;包括没有控制终端的进程 -l &#xff1a;长格式显示 -w &#xff1a;宽…

什么是机器学习,机器学习与人工智能的区别是什么(一)?

人工智能和计算机游戏领域的先驱阿瑟塞缪尔&#xff08;Arthur Samuel&#xff09;创造了 "机器学习"一词。他将机器学习定义为 “一个让计算机无需明确编程即可学习的研究领域” 。通俗地说&#xff0c;机器学习&#xff08;ML&#xff09;可以解释为根据计算机的经…

从零开始搭建spring boot多模块项目

一、搭建父级模块 1、打开idea,选择file–new–project 2、选择Spring Initializr,选择相关java版本,点击“Next” 3、填写父级模块信息 选择/填写group、artifact、type、language、packaging(后面需要修改)、java version(后面需要修改成和第2步中版本一致)。点击“…

llamafactory-llama3微调中文数据集

一、定义 https://github.com/SmartFlowAI/Llama3-Tutorial/tree/main 基准模型测试opencompass 离线测评数据准备微调训练合并测试人工审核对比 二、实现 基准模型测试 基准模型 llama3-8b https://zhuanlan.zhihu.com/p/694818596? https://github.com/SmartFlowAI/Llam…

计算机网络知识整理笔记

目录 1.对网络协议的分层&#xff1f; 2.TCP/IP和UDP之间的区别&#xff1f; 3.建立TCP连接的三次握手&#xff1f; 4.断开TCP连接的四次挥手&#xff1f; 5.TCP协议如何保证可靠性传输&#xff1f; 6.什么是TCP的拥塞控制&#xff1f; 7.什么是HTTP协议&#xff1f; 8…

QGroundControl@Jetson Orin Nano - 从代码编译安装

QGroundControlJetson Orin Nano - Build from Source 1. 源由2. 步骤2.1 QT 编译2.1.1 下载2.1.2 版本2.1.3 初始化2.1.4 配置2.1.5 编译2.1.6 安装 2.2 QGC 编译2.2.1 下载2.2.2 版本2.2.3 初始化2.2.4 配置2.2.5 编译2.2.6 安装2.2.7 QT5命令备注 3. 可行方案4. 总结5. 补充…

CICD之Git版本管理及基本应用

CICD:持续集成,持续交付--让对应的资料,对应的项目流程更加规范--提高效率 CICD 有很多的工具 GIT就是其中之一 1.版本控制概念与环境搭建 GIT的概念: Git是一款分布式源代码管理工具(版本控制工具) ,一个协同的工具。 Git得其数据更像是一系列微型文件系统的快照。使用Git&am…

D : 合适的顺序

Description 给定 8 个数&#xff0c;如果将它们排成一列&#xff0c;每个数的权值是它与相邻的数之积&#xff0c;求一个排列方式&#xff0c;所有数的权值之和最大&#xff0c;输出该权值和. 例如 13242315 的权值和为 1∗33∗1∗22∗3∗44∗2∗22∗4∗33∗2∗11∗3∗55∗1…

libctk shared library的设计及编码实践记录

一、引言 1.1 <libctk>的由来 1.2 <libctk>的设计理论依据 1.3 <libctk>的设计理念 二、<libctk>的依赖库 三、<libctk>的目录说明 四、<libctk>的功能模块及使用实例说明 4.1 日志模块 4.2 mysql client模块 4.3 ftp client模块 4…

AVL树模拟

1.概念 虽然二叉搜索树可以缩短查找的效率&#xff0c;但如果数据有序或者接近有序时二叉搜索树树将退化为单支树&#xff0c;查找元素相当于在顺序表中搜索元素&#xff0c;效率低下。AVL 树是具有一下性质的二叉搜索树&#xff1a; 1.它的左右子树都是AVL树 2.左右子…

C++特殊类设计单例模式...

文章目录 请设计一个类&#xff0c;不能被拷贝请设计一个类&#xff0c;只能在堆上创建对象请设计一个类&#xff0c;只能在栈上创建对象请设计一个类&#xff0c;不能被继承请设计一个类&#xff0c;只能创建一个对象(单例模式)单例模式&#xff1a;饿汉模式&#xff1a;懒汉模…

steam社区载入失败、加载不出来、打不开?

随着steam夏季大促的到来&#xff0c;最近steam在线用户越来越多了&#xff0c;很多玩家在自己喜欢的游戏社区里看最新的玩法、攻略和玩家的游戏心得。不过有不少玩家表示有时候会打不开游戏社区或是社区加载失败等问题。根据大家遇到的问题&#xff0c;这里总结了几种解决方法…

Mongodb安装与配置

Mongodb的下载 这里下载的是MongoDB 7.0.11版本的 首先进入官网&#xff1a;https://www.mongodb.com/ 点击完上面两步后&#xff0c;加载来到该页面&#xff0c;选择自己的版本、系统&#xff0c;是压缩包(zip)还是安装包(msi)。 下载好之后能&#xff0c;来到安装包哪里&a…

程序员福利-一种高效的治疗颈椎病的方法

我从18年开始出现颈椎病&#xff0c;只要在电脑前低头工作两个小时&#xff0c;颈部就会不舒服&#xff0c;脖子的肌肉酸痛无力、僵硬麻木&#xff0c;影响血液循环系统&#xff0c;大脑供血不足&#xff0c;导致心烦意乱&#xff0c;注意力无法集中&#xff0c;还会影响消化系…

在HBuilder X中ElementUI框架的搭建

前言 本文将详解基于Vue-cli脚手架搭建的项目如何使用ElementUI &#xff1f;所以在学习本篇文章内容之前建议先学习vue-cli脚手架项目的搭建和学习 使用HbuilderX快速搭建vue-cil项目https://mp.csdn.net/mp_blog/creation/editor/140043776 ElementUI框架: Element&#xff…