数据结构题库12

news2025/1/20 1:57:50

第六章 图
一、单项选择题
1.下面关于图的存储结构的叙述中正确的是 (1) 。
(1):A.用邻接矩阵存储图占用空间大小只与图中顶点有关,与边数无关
B.用邻接矩阵存储图占用空间大小只与图中边数有关,而与顶点数无关
C.用邻接表存储图占用空间大小只与图中顶点数有关,而与边数无关
D.用邻接表存储图占用空大小只与图中边数有关,而与顶点数无关
2.下面关于对图的操作的说法不正确的是 (2) 。
(2):A:寻找关键路径是关于带权有向图的操作
B.寻找关键路径是关于带权无向图的操作
C.连通图的生成树不一定是惟一的
D.带权无向图的最小生成树不一定是惟一的
3.下面的各种图中,哪个图的邻接矩阵一定是对称的 (3) 。
(3):A.AOE网 B.AOV网 C.无向图 D.有向图
4.在AOE网中关于关键路径叙述正确的是 (4) 。
(4):A.从开始顶点到完成顶点的具有最大长度的路径,关键路径长度是完成整个工程所需的最短时间
B.从开始顶点到完成顶点的具有最小长度的路径,关键路径长度是完成整个工程所需的最短时间
C.从开始顶点到完成顶点的具有最大长度的路径,关键路径长度是完成整个工程所需的最长时间
D.从开始顶点到完成顶点的具有最小长度的路径,关键路径长度是完成整个工程所需的最短时间
5.一个具有n个顶点e条边的图中,所有顶点的度数之和等于 (5)。
(5):A.n B.2n C.e D.2e
6.具有8个顶点的无向图最多有 (6) 条边。
(6):A.8 B.28 C.56 D.72
7.具有8个顶点的有向图最多有 (7) 条边。
(7):A.8 B.28 C.56 D.78
8.深度优先遍历类似于二叉树的 (8) 。
(9):A.前序遍历 B.中序遍历 C.后序遍历 D.层次遍历
9.广度优先遍历类似于二叉树的 (9) 。
(9):A.前序遍历 B.中序遍历 C.后序遍历 D.层次遍历
10.任一个连通图的生成树 (10) 。
(l0):A.可能不存在 B.只有一棵 C.一棵或多棵 D.一定有多棵
11.下列关于连通图的BFS和DFS生成树高度论述正确的是 (11)。
(11):A.BFS生成树高度<DFS生成树的高度
B.BFS生成树高度≤DFS生成树的高度
C.BFS生成树高度>DFS生成树的高度
D.BFS生成树高度≥DFS生成树的高度
12.G是一个非连通无向图,共有28条,则该图至少有解 (12) 个顶点。
(12):A.7 B.8 C.9 D.10
二、判断题
1.一个图的邻接矩阵表示是惟一的。 ( )
2.一个图的邻接表表示是惟一的。 ( )
3.无向图的邻接矩阵一定是对称矩阵。 ( )
4.有向图的邻接矩阵一定是对称矩阵。 ( )
5.有向图用邻接表表示,顶点vi的出度是对应顶点vj链表中结点个数。 ( )
6.有向图用邻接表表示,顶点vi的度是对应顶点vj链表中结点个数。 ( )
7.有向图用邻接矩阵表示,删除所有从顶点i出发的弧的方法是,将邻接矩阵的i行全部元素置为0。 ( )
8.若从无向图中任一顶点出发,进行一次深度优先搜索,就可以访问图中所有顶点,则该图一定是连通的。 ( )
9.在非连通图的遍历过程中,调用深度优先搜索算法的次数等于图中连通分量的个数。 ( )
10.具有n个顶点的有向强连通图的邻接矩阵中至少有n个小于∞的非零元素。 ( )
11.一个连通图的生成树是一个极小连通子图。 ( )
12.在有数值相同的权值存在时,带权连通图的最小生成树可能不惟一。 ( )
13.在AOE网中仅存在一条关键路径。 ( )
14.若在有向图的邻接矩阵中,主对角线以下的元素均为0,则该图一定存在拓扑有序序列。 ( )
15.若图C的邻接表表示时,表中有奇数个边结点,则该图一定是有向图。 ( )
16.在AOE网中,任何一个关键活动提前完成,整个工程都会提前完成。 ( )
17.图的深度优先遍历序列一定是惟一的。 ( )
18.有向无环图的拓扑有序序列一定是惟一的。 ( )
19.拓扑排序输出的顶点个数小于图中的顶点个数,则该图一定存在环。 ( )
三、填空题
1.在一个具有n个顶点的完全无向图和完全有向图中分别包含有 (1) 和 (2) 条边。
2.具有n个顶点的连通图至少具有 (3) 条边。
3.具有n个顶点e条边的有向图和无向图用邻接表表示,则邻接表的边结点个数分别为(4)和 (5) 条。
4.在有向图的邻接表和逆邻接表中,每个顶点链表中链接着该顶点的所有 (6) 和 (7)结点。
5.若n个顶点的连通图是一个环,则它有 (8) 棵生成树。
6.图的逆邻接表存储结构只适用于 (9) 。
7.n个顶点e条边的图采用邻接矩阵存储,深度优先遍历算法的时间复杂度是 (10) ,广度优先算法的时间复杂度是 (11) 。
8.n个顶点e条边的图,采用邻接表存储,广度优先遍历算法的时间复杂度是 (12) ,深度优先遍历算法的时间复杂度是 (13) 。
9.若要求一个稀疏图的最小生成树,最好用 (14) 算法求解。
10.若要求一个稠密图的最小生成树,最好用 (15) 算法求解。
四、应用题
1.已知图C=(V,E),其中V={a,b,c,d,e},E={(a,b),{a,c},{a,d},(b,c),(d,c),(b,e),(c,e),(d,e)}要求:
(1)画出图G;
(2)给出图G的邻接矩阵;
(3)给出图G的邻接表;
(4)给出图G的所有拓扑有序序列。
2.已知带权无向图的邻接表见下图,要求:
在这里插入图片描述
(1)画出图G。
(2)各画一棵从顶点a出发的深度优先生成树和广度优先生成树。
(3)给出用prim算法从顶点a出发构造最少生成树的过程。
(4)给出用Kruscal算法构造最小生成树的过程。
3.已知带权有向图如右图所示,要求:
(1)给出图G的邻接矩阵;
(2)给出图G的一个拓扑有序序列;
(3)求从顶点a出发到其余各顶点的最短路径。
在这里插入图片描述
4.已知带权有向图G见下图,图中边上的权值为完成活动ai需要的天数,要求:
(1)求每项活动的最早和最晚开工时间;
(2)完成此项工程最少需要多少天;
(3)给出图G的关键路径。
在这里插入图片描述
四、算法题
1.编写根据无向图G的邻接表,判断图G是否连通的算法。
2.编写根据有向图的邻接表,分别设计实现以下要求的算法:
(1)求出图G中每个顶点的出度;
(2)求出图G中出度最大的一个顶点,输出该顶点编号;
(3)计算图G中出度为0的顶点数;
(4)判断图G中是否存在边〈i,j〉。

参考答案

第六章
一、单项选择题
(1)-(4)AACA (5)-(9)DBCAD (10)-(11)CB
(12)图G是一个非连通分量,至少有两个连通分量。含8个顶点的完全无向图共需28条边,另外一个顶点构成一个连通分量,所以至少含9个顶点。
二、判断题
1.正确2.错误3.正确 4.错误5.正确6.错误 7.正确 8.正确 9.正确
10.正确(若n个顶点依次首尾相接构成一个环的有向强连通图,至少含n条边,即邻接矩阵中至少有n个小于u的非零元素)。
11.错误 12.正确 13.错误 14.正确 15.正确
16.错误 17.错误 18.错误 19.正确
三、填空题
(1)n(n-1)/2 (2)n(n-1) (3)n-1 (4)e (5)2e (6)出边 (7)人边 (8)n (9)有向图 (10)O(n2) (11)O(n2) (12)O(n+e) (13)O(n+e) (14)Kruscal (15)prim
四、算法题
1.将图的深度优先遍历或广度优先遍历算法稍加改造,另设m保存访问的顶点个数,若已访问顶点个数m小于图中顶点个数n,则图G不连通,否则为连通。现将深度优先遍历的非递归算法改造如下:
采用邻接表表示,类型定义如下:
#define MaxV 20
typedef struct node
{int adjvex;
struct node *next;
}Enode;
typedef struct
{int data;
Enode *firste;
}Vnode;
typedef struct
{Vnode adjlist[MaxV];
int n;
int e;
}ALGraph;
int connect(ALGraph *G)
{int i,j,Visited[MaxV],m=0,top=0;
Enode *p,*S[MaxV];
For(i=0;i<n;i++)
Visited[i]=0;
Visited[0]=0;
Printf(“%c”,G->adjlist[0].data);
m++;
S[top++]=p->next;
j=p->adjvex;
if(visited[j]0)
{visited[j]=1;
printf(“%c”,G->adjlist[j].data);
m++;
s[top++]=G->adjlist[j]->firste;
}
}
}
if(ma)
return(0);
else
return(1);}
2.(1)解:顺序计算每个顶点链表的表中结点个数,就是该顶点的出度.
算法如下:
void outdegree(graph g,int v)
{arcnode *p;
int n=0;
p=g.adjlist[v].firstarc;
while§
{ n++;
p=p->nextarc;}
}
return n;
}
void outds(graph g)
{ int i;
printf(“各顶点出度:、\n”);
for(i=0;i<g.vexnum;i++)
printf(“顶点%d:%d\n”,i,outdegree(g,i));
}
(2)void maxoutds(graph g)
{ int maxv=0,maxds=0i,x;
for(i=0;i<g.vexnum;i++)
{ x=outdegredd(g,i);
if(x>maxds)
{maxds=x;maxv=1;}
}
printf(“最大出度:顶点%d的出度%d”,maxv,maxds);
}
(3)void zerods(graph g)
{ int i,x;
printf(“出度为0的顶点:\n”);
for(i=0;i<g.vexnum;i++)
{ x=outdegree(g,i);
if(x
0)
printf(“%d”,i);
}
}
(4)void arc(graph g)
{ int i,j;
arcnode *p;
printf(“输入边:\n”);
scanf(“%d,%d”,i,j);
p=g.adjlist[i].firstarc;
while(p!=NULL&&p->adjvex!=j)
p=p->nextarc;
if(p==NULL)
printf(“不存在!”);
else
printf(“存在<%d,%d>边:\n”,i,j);
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【adb】iqoo系统精简垃圾内置应用

免责声明 这个得谨慎点&#xff0c;虽然我验证过两部手机和不同版本的系统&#xff0c;但是总会有特殊的存在、 本教程来自于互联网搜集整理&#xff0c; 按照本教程造成的用户设备硬件或数据损失&#xff0c;本人概不承担任何责任&#xff0c;如您不同意此协议&#xff0c;请不…

sharedPreference包的使用总结

文章目录 1 概念介绍2 实现方法3 示例代码我们在上一章回中介绍了"如何自定义评分条"相关的内容,本章回中将介绍如何实现本地存储.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 Flutter是一套跨平台的UI框架,它不像原生SDK一样提供本地存储功能,因此,我们在…

嵌入式蓝桥杯学习4 lcd移植

cubemx配置 复制前面配置过的文件 打开cubemx&#xff0c;将PB8,PB9配置为GPIO-Output。 点击GENERATE CODE. 文件移植 1.打开比赛提供的文件包&#xff0c;点击Inc文件夹 2.点击Inc文件夹。复制fonts.h和lcd.h&#xff0c;粘贴到我们自己的工程文件夹的bsp中&#xff08…

基于Matlab扩展卡尔曼滤波的GPS与DME组合无人机导航系统设计与实现

随着无人机&#xff08;UAV&#xff09;在农业监测、环境保护、物流运输、灾害救援等各个领域的广泛应用&#xff0c;精准且可靠的导航系统已成为提升无人机性能和任务执行能力的关键因素。传统的导航方法依赖于单一传感器&#xff0c;往往难以在复杂和动态的环境中提供足够的定…

仿真键盘输入遇到Edge环境不识别 回车符如何处理

这个问题我也是最近才遇到&#xff0c;可能现在大家都喜欢用新架构&#xff0c;基于网页来写应用管理软件。 当遇到Edge环境下&#xff0c;文本框不识别回车符如何处理&#xff0c;根据笔者经验可通过配置Edge 基于键盘管理设置来解决这个事情。如图 即在Edge浏览器环境下&…

黑马redis

Redis的多IO线程只是用来处理网络请求的,对于读写操作命令Redis仍然使用单线程来处理 Redisson分布式锁实现15问 文章目录 主线程和IO线程是如何协作的Unix网络编程中的五种IO模型Linux世界一切皆文件生产上限制keys *、flushdb、flushall等危险命令keys * 遍历查询100W数据花…

JDK 并发编程工具类详解:CountDownLatch、Semaphore、Exchanger、CyclicBarrier 和 Phaser

在 Java 并发编程中&#xff0c;JDK 提供了一些强大的工具类来帮助开发者处理线程间的同步和通信问题。这些工具类主要包括 CountDownLatch、Semaphore、Exchanger、CyclicBarrier 和 Phaser&#xff0c;它们都位于 java.util.concurrent 包下&#xff0c;统称为 JUC&#xff0…

实现RAGFlow-0.14.1的输入框多行输入和消息框的多行显示

一、Chat页面输入框的修改 1. macOS配置 我使用MacBook Pro&#xff0c;chip 是 Apple M3 Pro&#xff0c;Memory是18GB&#xff0c;macOS是 Sonoma 14.6.1。 2. 修改chat输入框代码 目前RAGFlow前端的chat功能&#xff0c;输入的内容是单行的&#xff0c;不能主动使用Shift…

电子商务人工智能指南 4/6 - 内容理解

介绍 81% 的零售业高管表示&#xff0c; AI 至少在其组织中发挥了中等至完全的作用。然而&#xff0c;78% 的受访零售业高管表示&#xff0c;很难跟上不断发展的 AI 格局。 近年来&#xff0c;电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…

基于STM32F103RCT6的PS2手柄控制舵机转向小车

一、PS2 &#xff08;1&#xff09;当接收器上的绿灯常亮时&#xff0c;证明手柄和接收器配对成功&#xff0c;可以正常进行数据通讯。如果手柄和接收器断开了&#xff0c;按手柄上的START键即可恢复配对&#xff1b; &#xff08;2&#xff09;当手柄上的MODE指示灯没有点亮的…

电脑投屏到电脑:Windows,macOS及Linux系统可以相互投屏!

本篇其实是电脑远程投屏到另一台电脑的操作介绍。本篇文章的方法可用于Windows&#xff0c;macOS及Linux系统的相互投屏。 为了避免介绍过程中出现“这台电脑”投屏到“那台电脑”的混乱表述&#xff0c;假定当前屏幕投出端是Windows系统电脑&#xff0c;屏幕接收端是Linux系统…

软件测试环境搭建与测试流程

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1.软件测试环境搭建 思考&#xff1a; 在什么条件下做软件测试&#xff1f;怎么做软件测试&#xff1f; 1.1 搭建测试环境前 确定测试目的 功能测试&#xff…

实战 | C# 中使用YOLOv11实现实例分割 (步骤 + 源码)

导 读 本文主要介绍在C#中使用YOLOv11实现实例分割,并给详细步骤和源码。 C# YOLO11实例分割——本文实现效果:

C#窗体程序学生管理

代码如下&#xff1a; public static string constr "Data SourceFUSHUAI;Initial Catalogproduct;Integrated SecurityTrue"; public static SqlConnection con new SqlConnection(constr); private void Form1_Load(object sender, EventArgs e) { gettable…

特朗普画像

任务内容 Description 特朗普当选了&#xff0c;网上流传着很多段子&#xff0c;也出了特朗普的头像。有人说&#xff0c;特朗普 的头像像一团云。所以今年马云去了美国和特朗普谈中美企业的发展。那么你能帮 忙打印出特朗普的头像吗&#xff1f; 抽象派认为&#xff0c;特朗普…

【Linux 篇】Docker 启动和停止的精准掌舵:操控指南

文章目录 【Linux篇】Docker 启动和停止的精准掌舵&#xff1a;操控指南前言docker基本命令1. 帮助手册 2. 指令介绍 常用命令1. 查看镜像2. 搜索镜像3. 拉取镜像4. 删除镜像5. 从Docker Hub拉取 容器的相关命令1. 查看容器2. 创建与启动容器3. 查看镜像4. 启动容器5. 查看容器…

Android环境搭建

Android环境搭建 第一步&#xff1a;安装 Homebrew 执行以下命令来安装 Homebrew&#xff1a; /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"检测是否安装成功&#xff1a; brew --version第二步&#xff1a;安装 No…

【调试工具】USB 转 UART 适配器(USB 转 TTL)

「USB 转 TTL 转换器」是错误的叫法&#xff0c;正确的叫法应该为 「USB 转 UART 适配器」。 Device connection 注意端口的交叉连接&#xff0c;Device1_TX<---->Device2_RX USB-to-UART adapter GND 记得接地。 使用&#xff1a; 当 TX,RX 需要电平为 0-3.3V 时&am…

Stable Diffusion核心网络结构——U-Net

本文详细详细介绍Stable Diffusion核心网络结构——U-Net&#xff0c;作用&#xff0c;架构&#xff0c;加噪去噪过程损失函数等。 目录 Stable Diffusion核心网络结构 SD模型整体架构初识 U-Net模型 【1】U-Net的核心作用 【2】U-Net模型的完整结构图 &#xff08;1&#xff0…

利用【AOP+自定义注解】实现项目中【日志记录】

利用AOP自定义注解实现日志记录 需求: 日志记录 操作日志记录,类似如下 思路:AOP自定义注解 AOP面向切面编程,利用 一种称为"横切"的技术&#xff0c;剖开封装的对象内部&#xff0c;并将那些影响了 多个类的公共行为抽取出封装到一个可重用模块&#xff0c;并将其…