854数据结构简答题---图

news2025/1/12 1:37:55

image.png

1.(2015期末)已知无环路有向图如图3.1,请在表2、表3中填写出各事件的最早发生时间、最迟发生时间、活动的最早、最迟开始时间,给出关键活动及关键路径。

从源点到汇点的有向路径可能有多条,所有路径中,具有最大路径长度的路径称为关键路径,而把关键路径上的活动称为关键活动

拓扑排序:V1 V3 V2 V5 V4 V6 V8 V7 V9

顶点VE(i)VL(i)
V100
V266
V346
V458
V577
V6710
V76+1+9=1616
V86+1+7=1414
V96+1+7+4=1818
活动E(i)L(i)L(i)-E(i)
a1000
a2022
a3033
a4660
a5462
a6583
a7770
a8770
a97103
a1016160
a1114140

image-20231029150736823.png
image-20231029150423976.png
image-20231029151150963.png

image.png

image.png
image.png

2.(2014真)给出判断一个有向图是否存在拓扑排序的算法:给出图-1所示有向图的拓扑序列。

依次选择入度为0的顶点输出,并且删除该顶点和这个顶点相关的所有边,重新上述过程故得到答案

1、2、3、4或者1、2、4、3

标准答案:
(1)在有向图中选一个没有前驱的顶点并且输出之;
(2)从图中删除该顶点和所有以它为尾的弧;
重复上述两步,直至全部顶点均输出或当前图中不存在无前驱的顶点为止。若出现后面这种情况,则说明不存在拓扑排序。
所给有向图的拓扑序列:①、②、③、④ 或 ①、②、④、③

3.(2020期)

(1)简述图的深度优先遍历算法

(2)给出下图以v1为开始结点的深度优先序列和广度优先序列

4.(2020期)(1)简述拓扑排序算法                                                    (2)给出下图的一个拓扑排序序列

5.(2020期)

(1)简述求最短路径的Dijkstra算法

(2)给出下图各点到a点的最短路径

6. 求最小生成树的Prim算法和Kruskal算法有什么特点和区别

Prim算法和Kruskal算法都是从连通图中找出最小生成树的经典算法。从策略上来说,Prim算法是直接查找,多次寻找邻边的权重最小值,而Kruskal是需要先对权重排序后查找的。

所以说,Kruskal在算法效率上是比Prim快的,因为Kruskal只需一次对权重的排序就能找到最小生成树,而Prim算法需要多次对邻边排序才能找到。

Prim算法的实现过程

首先以一个结点作为最小生成树的初始结点,然后以迭代的方式找出最小生成树中各结点权重最小的边,并加到最小生成树中。(加入之后如果产生回路了就要跳过这条边,选择下一个结点。)当所有的结点都加入到最小生成树中后,就找出了这个连通图的最小生成树。

Kruskal算法的实现过程

Kruskal算法在找最小生成树结点之前,需要对权重从小到大进行排序。将排序好的权重边依次加入到最小生成树中,(如果加入时产生回路就跳过这条边,加入下一条边)。当所有的结点都加入到最小生成树中后,就找到了这个连通图的最小生成树。

7.(2019真)有n个人,m对朋友关系,朋友的朋友也是朋友,这样组成1个朋友圈,问怎么求有多少个朋友圈(实质就是无向图求连通分量)

题目:假如已知有n个人和m对好友关系R,若两个人是直接好友或间接好友(好友的好友是好友),则认为他们属于同一好友圈,请说明如何求出这n个人中有几个好友圈。例如:n=5,m=3,R={{1,2},{2,3},{4,5}},表示有5个人,1和2是好友,2和3是好友,4和5是好友,则1、2、3属于一个朋友圈,4、5属于另一个朋友圈,结果为两个朋友圈
深度优先遍历的次数

  1. 使用树结构描述题中问题,则其为一个典型的并查集问题:将n个人初始化形成一个含有n颗树的森林,之后根据好友关系判断两人是否属于同一集合,若不是则合并两个集合,最终得到的森林中含有的树的数目即为所求朋友圈个数。
    2) 使用图结构描述题中问题:
    (1) 将n个人作为图的n个结点,将m对好友关系作为图的边。
    (2) 对该无向图,利用DFS或者BFS算法求解其连通分量的个数,即为所求朋友圈个数。

8.(2013真)已知加权有向图的邻接矩阵如下图所示,如需在其中一个顶点建立娱乐中心,请回答下列问题:

①利用Floyd算法(允许中转的问题)求出每对顶点的最短距离,并用矩阵表示;

②求每个顶点的偏心度;

③确定娱乐中心应选哪个顶点。

9.(2020期)

(1)简述最小生成树算法的prim算法

(2)给出下图以a为开始结点,按prim 算法过程生成的最小生成树

10.(2014期)Dijkstra最短路径算法是否能够给出一颗生成树?是否可以给出一颗最小生成树(MST)

Dijkstra最短路径算法能够给出一颗树。具体方法是:选择任意顶点,然后以该顶点为基准,每一次迭代可以求出一个点离该顶点的最短路径,这个最短路径就是应该保留的边,同时确保不会形成环。

Dijkstra最短路径算法每次不一定能生成最小树

chatgpt解析:
Dijkstra最短路径算法可以给出一颗生成树,但不一定能给出一颗最小生成树(MST)。
Dijkstra算法是一种用于计算单源最短路径的算法,它通过贪心策略逐步确定从起始节点到其他节点的最短路径。在每一步中,Dijkstra算法选择当前路径长度最短的节点,并更新与该节点相邻的节点的最短路径。这样,在算法执行完毕后,可以得到从起始节点到每个节点的最短路径。
当应用Dijkstra算法时,可以通过记录每个节点的前驱节点来构建一颗生成树,该生成树以起始节点为根节点,覆盖了从起始节点到所有其他节点的最短路径。这颗生成树被称为最短路径树。
然而,需要注意的是,Dijkstra算法仅适用于带有非负权重的图。对于带有负权重的图,Dijkstra算法可能无法得到正确的结果。另外,Dijkstra算法只能计算单源最短路径,而无法计算多源最短路径。
至于最小生成树(MST),它是一个无向连通图的生成树,其中包含了连接所有节点的边,并且总权重最小。Dijkstra算法并不是用于计算最小生成树的算法。常用的用于计算最小生成树的算法有Prim算法和Kruskal算法。

11.(2011期末)请举例说明为什么带负权值Dijkstra算法不能求最短路径

12.(2015真)简答 Floyd 算法的基本设计思想,试举例说明,为什么Floyd算法可以有负权值的边,但不能有包含负权值边组成的回路。   O(|V^3|)

13.(模拟)

14. (2022期末)

image.png

  1. 写出图的邻接矩阵
  2. 求从 a 出发的一颗 DFS 树
  3. 使用 Prim 算法求其最小生成树

15. (疑是21期末)

image.png

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

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

相关文章

网络工程综合试题(三)

1. BGPMLS的作用是什么? BGPMLS(BGP Monitoring Protocol and Label Switching)是一种用于监控和管理BGP(Border Gateway Protocol)网络的协议和技术。它结合了BGP和MPLS(Multiprotocol Label Switching&am…

超级英雄的导航之旅:动态路由和嵌套路由

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

linux下backtrace函数获取函数调用堆栈信息用法

backtrace用途介绍: 使用backtrace可以查看函数的调用关系,也可以查看程序异常时的函数调用关系。配置生成coredump生成文件的方法也可以捕获异常,但产生的coredump文件内存较大,backtrace函数的方法占用的内存小。 需求&#x…

这个人工智能社区火爆了!手把手教你零代码搞定大模型应用开发

想给自己做个私人定制的旅行攻略,满足个性化的出游需求,还要细致关注到天气、穿衣、老人孩子的作息等等,但太耗时费力怎么办?让AI帮忙搞定。一位开发者在AI Studio星河大模型社区用短短数小时就做好了“旅行规划家”智能应用。像这…

ICS TRIPLEX T8311 控制器模块

掌握器模块是产业自动化和掌握体系中的症结组件,具备多种特征,以保证体系的稳定性、否靠性和高效性。以下是掌握器模块的一些主要特征: 多通道掌握: 掌握器模块通常否以或许掌握多个通道,许否同时治理多个装备或历程。…

基于ADS的肖特基二极管整流电路仿真

文章目录 一、构建二极管模型二、构建封装寄生的二极管模型三、构建整流电路四、仿真及优化4.1HB仿真4.2 LSSP仿真4.3 仿真及调谐结束最近在仿真一个12级的整流电路,想利用ADS做一些原理级的仿真,验证可行性。这个事情对理解非线性电路还是有点帮助,所以把它记录下来。 先来…

C++中的std::cout与std::cerr、std::clog

本文用于记录C中std::cout与std::cerr、std::clog的异同 std::cerr 是C标准库中的标准错误输出流,用于向标准错误设备输出信息,通常用于报告程序的错误和异常情况。与之相对的,std::cout 是标准输出流,用于向标准输出设备输出一般…

springboot是如何工作的

一、前言 现在java后端开发框架比较多的使用springboot框架,springboot是在以前的springMVC进行封装和优化,最大的特点是简化了配置和内置Tomcat。本节通过阅读源码理解springboot是如何工作的。 二、springboot是如何工作的 1、从启动类开始 /***服务…

“探索Linux世界:从CentOS安装到常见命令使用“

目录 引言一、安装CentOS二、Linux的常见命令文件夹和目录操作命令文件编辑命令vi或vim编辑器命令模式编辑模式末行模式 总结 引言 在计算机领域,Linux作为一种强大而灵活的操作系统,在服务器、嵌入式设备和个人电脑等领域广泛应用。本文将引导您了解并…

如何将 ONLYOFFICE 桌面版编辑器 7.5 安装到 Red Hat、CentOS 及衍生产品上

使用桌面版的 ONLYOFFICE 在线编辑器,您可使用本地文件操作,无需保持互联网连接状态。 ONLYOFFICE 桌面编辑器是什么 ONLYOFFICE 桌面编辑器是一款全面的办公工具,提供了文本文档、电子表格、演示文稿、可填写表单和 PDF 查看和编辑功能。它…

六、【图像去水印】

文章目录 裁剪法移动复制法内容识别去水印色阶法去水印消失点法去水印反相混合法 裁剪法 处于边缘的水印,通过裁剪去除,如下图: 移动复制法 移动复制法适用于水印的背景这部分区域比较相似的情况下使用,如下图先使用矩形选区选中…

ICS TRIPLEX T9402数字输出模块

数字输入模块是产业自动化和掌握体系中的闭键组件,用于向外部装备发送数字输入旌旗灯号,通常用于掌握继电器、阀门、机电、灯光和其他数字装备。以下是数字输入模块的一些主要用处: 掌握履行器: 数字输入模块用于掌握履行器装备&a…

工作中的小tips:如何快速提取图片或者pdf上的文字,进行编辑?

工作中经常会碰到需要的材料是图片或者不能拷贝的pdf之类的情况,那么有没有办法快速从上面提取文字呢? 最近发现一个很好用的网站,百度翻译。首先说明一下,接下来的方法比较适合短一点的文字,像是大篇幅的那种不太适合…

0001net程序设计-net大学校园二手交易平台

文章目录 摘 要目 录系统设计开发环境 摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生&…

滑动窗口限流算法实现一

固定算法 原理:固定算法是将时间线分隔成固定大小的时间窗口,每个窗口都会有个计数器,用来记录窗口时间范围内的请求总数,如果窗口的请求总数达到最大限定值,会认定流量超限。比如将窗口大小设为1分钟,每分…

怎么搭建一个蛋糕店小程序?

在当今的移动互联网时代,很多企业纷纷选择了小程序作为推广和销售的利器。对于蛋糕店来说,创建一个小程序可以提高品牌知名度,增加销售渠道。下面,我们以【乔拓云】第三方平台为例,来介绍一个完整蛋糕店小程序的制作流…

Java学习 5.Java-逻辑控制

逻辑控制 逻辑控制分为:选择语句、循环语句 一、if和switch选择语句 顺序中夹杂着循环,伴随着一次次的选择不断地成长 1.if语句 选择语句 单分支 if() 表达式; int a60;if(a60){System.out.println("a60");} 双分支 if(){ 表达式1&…

人工智能AI 全栈体系(九)

第一章 神经网络是如何实现的 如何用神经网络处理不等长文本的方法? 八、循环神经网络(RNN: Recurrent Neural Network) 处理不等长文本的神经网络 – 循环神经网络 RNN。 1. 从句子理解说起 上次讲了用词向量表示词,一句话也…

Vue Router:让你的应用路由起来!

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

uni-app:查询对象中字段为可变情况的子项

如上图,数据中aaa为可变项,需要查询其子项name的值 var test aaa var data {"no":1,"aaa": {"name":张三,"age": 20}, } console.log(data[test].name) 定义一个变量test,其值设置为aaa&#xff…