23年408数据结构

 第一题:

解析

第一点,我们要知道顺序存储的特点:优点就是随用随取,就是你想要查询第几个元素可以直接查询出来,时间复杂度就是O(1),缺点就是不适合删除和插入,因为每次删除和插入一个元素之后都可能需要调整剩下的元素,因此时间复杂度不确定[最好情况下是O(1),最坏情况下是O(n),平均时间复杂度是O(n)]。由此可知,在顺序表中,查询(也就是获取)第i个元素的平均时间复杂度是O(1)。选项D对,且直接排除B,C,最后在来看一看A选项:在顺序表中查找一个指定值的元素,可能需要遍历整个数组,因此时间复杂度是O(n)。选项A错。

答案选D。   

第二题:

解析:注意题目说的是一个双向链表,该题考察的是双向链表的插入,这种题就是要画图。

在执行题目给的语句之后,结点p(p指针所指向的结点简称结点p,后面的同理)的next指针指向结点s,结点s的next指针指向结点q。因为是双向链表,还缺一个结点s到结点p的指针,结点q到结点s的指针。因为链表有一个特点就是未知的结点我们要用已知的指针表示出来不能直接使用,就比如这个结点q,在执行语句中并没有出现q指针,因此结点q就是未知的,先看一下结点q怎么给它表示出来:s->next=q,下图就是执行完语句之后的样子。

1.此时还缺一条结点s指向结点p的指针,观察图:结点s是已知的,怎么找到结点p?因为此时只有图中的三根指针,想找到结点p只能s->next->prev=p,

结点s到结点p的指针:s->prev=p,而p=s->next->prev,合并一下:s->prev=s->next->prev。

2.因为此时结点q的前指针prev还指向的p,我们应该把这个指针调整成指向s。

因此结点q到结点s的指针:q->prev=s,而s->next=q,合并一下也就是s->next->prev=s。
这题不难,就是要注意是双向链表,以及要细心留意一下有哪些指针和怎么用已有的指针来表示出各种结点。这是结点s插入完成的样子,可以对比着看一下。

答案选C

第三题:

解析:这个题的话你要知道三元组表是什么,三元组表储存了矩阵中关键字所在的行,列已经具体的值。三元组表储存稀疏矩阵时是不储存0的,只储存非零常数。因此你并不需要保存M中包含非零元素的行列数,因为只储存非零常数,而行和列同样能看到,数一下就行了,我们只还需要知道M的行数和列数就能将稀疏矩阵M还原出来了,就给非零常数填上去,其他位置添0就完了。

答案选A

第四题:

解析:考察加权平均长度的计算方法:加权平均长度=带权路径长度/所有结点频次之和

第一步:构造哈夫曼树:

第二步:计算哈夫曼树带权平均长度:就是在带权路径长度的基础上再除一个所有频次之和。\frac{2\times (8+10)+3\times(3+4+5+6)}{3+4+5+5+8+10}=2.5

答案选B

第五题:

解析:这种题就你看这个结点的序列顺序,然后依次把字母添上去就行,最后是这个样子:

,然后根据这个图把前序序列写出来就行。

答案选A

第六题:

解析:这个考察单源最短路径算法,我们说单源最短路径就是求一个点到另一个点的最短路径。而单源最短路径包括BFS算法和迪杰斯特拉算法,这两个算法都没有出现在题目当中,再来看看1,2。1,2是用来构造最小生成树的,边都变少了,显然不能求某点到其余顶点的最短路径,下面来看看3,广度优先搜索算法是从点一层一层往外拓展然后进行搜索的,越往外的顶点距离该点的距离越远,所以3是对的。

答案选C

第七题:

解析:这题很奇怪,把终端结点当成了叶子结点

1:插入操作可能增加树的高度:考察B树的插入。1对。

2:若被删结点是叶结点,显然会导致叶结点的变化:若被删结点不是叶结点,则要先将被删结点和它的前驱或后继交换,最终转换为删除叶结点,还是会导致叶结点的变化,Ⅱ正确。

3:如果在非叶结点中查找到了给定关:键字,则不用向下继续查找,Ⅲ错误。

4:插入关键字的初始位置是最底层叶结点,但可能因结点分裂而被转移到父结点中,IV错误。

答案选B

第八题:

解析

第一次折半:300

第二次折半:150

第三次折半:75

第四次折半:38(37 1 37注意第38元素左边37个元素,右边37个元素,因此下次折半的个数是37+1=38)

第五次折半:19(9 1 9注意第10元素左边9个元素,右边9个元素,因此下次折半的个数是9+1=10)

第六次折半:10

第七次折半:5(2 1 2注意第3元素左边2个元素,右边2个元素,因此下次折半的个数是2+1=3)

第八次折半:3(1 1 1注意第2元素左边1个元素,右边1个元素,因此下次折半的个数是1+1=2)

第九次折半:2

第十次折半:1

最多十次

答案选B

第九题:

解析

第一步:计算散列函数,将关键字填上去:

最后是这个样子:

第二步:计算查找失败的平均查找长度,做这个题需要我们非常的细心。首先,我们要清楚逻辑删除的概念:当我们删除掉散列表中的一个数之后,这个位置并不是为空了,里面的值会变为-1,为什么会这样的呢,因为假设如果表中还存在一个关键字0,

,我们算出来和25的位置是冲突的,经过线性探测再散列法之后串到了0的位置,如果我们使用线性查找到4这个位置的值时,发现为空的话,就不会继续查找了,就会漏点这个0,因为0原本也是在4这个位置的,所以这里的位置不是空,而是-1,我们在查找H=4时,查到里面的关键字是-1,说明还没有完事,接着向后查找到0这个位置,发现是空的,这时候才算是查找失败,因此查找H=4时,是要查找两次的,这个要注意。

查找失败的平均查找长度:是从这个点开始到下一个空节点的长度÷所有结点的个数之和。

这题要注意的就是查找H=4,失败的次数是2次。

答案选C

第十题:

解析

这个题太简单了,我们正常的话都会记住稳定的算法:冒泡排序,归并排序,直接插入,基数排序,计数排序,排除掉这些就是不稳定的算法,直接排除A,B,D

答案选C

第十一题:

解析:考察快速排序的演变过程。

每一次排序之后,都会确定枢轴元素在序列中最终的位置,且它的左边都是小于这个枢轴元素的,右边都是大于这个枢轴元素的。显然这个枢轴元素就是81.

答案选D

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android app执行shell命令视频课程补充android 10/11适配-千里马android

(https://blog.csdn.net/learnframework/article/details/120103471) https://blog.csdn.net/learnframework/article/details/120103471 hi,有学员在学习跨进程通信专题课程时候,在实战app执行一个shell命令的项目时候,对课程本身的android …

MySQL-13.DQL-聚合函数

一.DQL-分组查询 二.聚合函数 -- DQL:分组查询 -- 聚合函数 -- 1.统计该企业员工数量 count select count(id) from tb_emp; select count(job) from tb_emp;select count(A) from tb_emp; select count(*) from tb_emp;-- 2.统计该企业最早入职的员工 min select min(entr…

Pyside6 布局管理器(3)--- 控件尺寸、尺寸策略与布局的关系详解

在学习QWidget时我们已经学习了控件尺寸的一些基本设置,比如设置其作为顶层窗口时resize()方法,setGeometry()等方法。但在将控件添加到布局中后我们会发现,这些方法对于QWidget做为子控件时却是无效的。而布局的显示与大小也受到控件的影响。…

网络资源模板--Android Studio 实现简易新闻App

目录 一、项目演示 二、项目测试环境 三、项目详情 四、完整的项目源码 一、项目演示 网络资源模板--基于Android studio 实现的简易新闻App 二、项目测试环境 三、项目详情 登录页 用户输入: 提供账号和密码输入框,用户可以输入登录信息。支持“记…

RabbitMQ最新版本4.0.2在Windows下的安装及使用

RabbitMQ 是一个开源的消息代理和队列服务器,提供可靠的消息传递和队列服务。它支持多种消息协议,包括 AMQP、STOMP、MQTT 等。本文将详细介绍如何在 Windows 系统上安装和使用最新版本的 RabbitMQ 4.0.2。 前言 RabbitMQ 是用 Erlang 语言开发的 AMQP&…

【Linux】【命令】diff

diff DescriptionsArgumentsExamples直接使用diff命令-u 输出格式-c 输出格式并列输出-s 和 -q 脚本示例示例1:目录及文件差异 Descriptions diff命令用于对比两个文件或者两个文件夹的不同之处,求基本语法如下所示: diff [OPTION]... FILES…

信号与噪声分析——第一节-确定信号的分析

目录 1.确定信号的分析 1.1确定信号的分类: 1.周期信号与非周期信号: 周期信号的定义: 性质: 2.能量信号与功率信号: 定义 区别: 3.基带信号与频带信号: 基带信号的定义: …

使用Matplotlib绘制箱线图:详细指南与示例

在数据分析和可视化领域,箱线图(Box Plot)是一种强大的工具,用于展示数据的分布特征,包括中位数、四分位数、异常值等。本文将详细介绍如何使用Matplotlib库在Python中绘制箱线图,并通过一个实际的血压数据…

基于微信小程序二手物品调剂系统设计与实现

文章目录 前言项目介绍技术介绍功能介绍核心代码数据库参考 系统效果图文章目录 前言 文章底部名片,获取项目的完整演示视频,免费解答技术疑问 项目介绍 二手物品调剂系统是一种在线平台,旨在促进用户之间的二手物品交易。该系统提供了一个…

数智合同 | 业财一体与履约联动的数字化转型

随着信息化技术的发展,合同数智化管理为应对合同管理挑战提供了新机遇。企业需要深入思考数智化手段在合同管理中的应用,以提高合同管理水平,应对新形势下的市场竞争挑战与合规要求,实现企业的高质量发展。 2024年5月,…

数据中心母线槽测温监控装置的优势和如何选型

在当今数字化高速发展的时代,数据中心成为了信息存储与处理的核心枢纽。而确保数据中心的稳定运行,对于企业和社会来说至关重要。其中,母线作为数据中心电力传输的关键环节,其正常运行直接关系到整个数据中心的可靠性。为了保障数…

2024新手攻略:项目管理工具+PMP备考经验不容错过!

(一)热门工具大盘点 禅道是一款专注于软件开发项目管理的工具。它涵盖了项目管理的各个环节,包括需求管理、任务分配、缺陷跟踪等。禅道的优势在于其对软件开发流程的深入理解和支持,能够帮助开发团队更好地管理项目进度和质量。…

免费的国标设备端模拟器,支持自定义编程,批量模拟大量国标GB28181设备

GB/T 28181是中国国家公共安全视频监控联网系统(简称“国标GB28181”)的一套标准,主要用于规范视频监控系统的互联互通。这套标准的实施旨在推动不同厂家设备之间的互操作性,促进视频监控市场的健康发展。本软件是针对GB28181标准…

算法01----移动零(C++)

题目展示 算法原理 我们这里要用到的算法是双指针移动,和我们之前学的快排的核心思想是一样的。我们看看怎么做吧。我会以图片的形式将我的思路告知大家。 这就是整个题目的整体思想算法,大家理解一下,其实这道题目还是很简单的。 代码编写…

02篇 机械考研复试简历保姆级教程,考研简历联系导师邮件复试调剂超全攻略 导师喜欢看到的简历(附模板)

考研复试简历怎么写?导师喜欢看到的简历(附模板) 复试简历,重要程度max!绝非小事一桩!它就像是你硬核经历的闪亮外衣,条理清晰、逻辑严谨且设计感十足,一定能在导师心中留下深刻印象…

基于neo4j知识图谱的菜谱推荐系统

🍴 AI菜谱推荐系统让你“煮”事半功倍! 🍴 找不到做饭灵感的时候,是不是总觉得“今天吃啥”这道选择题简直是终极挑战?别急,我们基于Neo4j知识图谱的菜谱推荐系统,正是为了解决你的困扰而设计&a…

空洞卷积:Atrous/Dilated convolution - 语义分割中多用到

没办法,我还是很多基础的、底层的模块不通透,读论文难免会受到阻碍,而且这现在科研任务很急了,必须要马上动手实验,全给我弄明白、特别是算法! 空洞卷积-可变形卷积-这一个个我都要。 空洞卷积据说在语义分…

【完-网络安全】Windows防火墙及出入站规则

文章目录 防火墙入站和出站的区别域网络、专用网络、公用网络的区别 防火墙 防火墙默认状态一般是出站允许,入站阻止。 入站和出站的区别 入站就是别人来访问我们的主机,也就是正向shell的操作 出站就是反向shell,主机需要主动连接kali&am…

智能指针(3)

目录 可能问题五: 问题分析: 答案格式: shared_ptr的模拟实现 部分1:引用计数的设计(分考点1) 代码实现: 部分2:作为类所必须的部分(分考点2) 代码实现: 部分3:拷贝构造函数…

WPF实现类似网易云音乐的菜单切换

这里是借助三方UI框架实现了,感兴趣的小伙伴可以看一下。 深色模式:​ 浅色模式: ​这里主要使用了以下三个包: MahApps.Metro:UI库,提供菜单导航和其它控件​​​​​​​ 实现步骤:1、使用B…