14年数据结构

news2024/11/12 3:20:16

第一题

解析:

求时间复杂度就是看程序执行了多少次。

假设最外层执行了k次,我们看终止条件是k=n,则:

2^{k}=n,k=\log 2 (n),

内层是一个j=1到j=n的循环,显然执行了n次。

总的时间复杂度是内层×外层=\log 2(n)\times n=n\log 2(n)

答案选C。

第二题

解析:

一步一步来分析栈内元素的变化:

输出a\rightarrow/存入栈中\rightarrowb输出\rightarrow/输出\rightarrow

此时栈:/

此时轮到+,+相对比/不够强,所以+不能直接进,需要先将/输出,然后+再进入。

此时栈:+

+存入栈中\rightarrow

然后是‘(’,‘(’够强,直接进入。

(存入栈中\rightarrow

此时栈:+ (

接着是c,c直接输出,然后是*,*够强直接存入栈中,d直接输出。

c输出\rightarrow*存入栈中\rightarrowd输出

此时栈:+ ( *

然后是-号,-号不够强,需要*先输出,-再进入。

*输出\rightarrow-存入栈中\rightarrow

此时栈:+ ( -

然后是e,e直接输出,*够强存入栈中,f输出。

e输出\rightarrow*存入栈中\rightarrowf输出

此时栈:+ ( - *

然后是),)有着和(配对的特点,需要将()一起输出出来。

( - * )输出\rightarrow

此时栈:+

最后是/g,/够强直接存入栈中,g直接输出。

/存入栈\rightarrowg输出

此时栈:+ /

题目问扫描到f时,栈的情况,直接看f。

答案选B

第三题

解析:

end1指向A[0],end2指向队尾元素的后一个位置,如果end2指向A[1],那就说明表内还有一个元素,肯定不对。

首先,队列为空时,对头指针和队尾指针中间肯定没有位置,也就是说这两个指针都指向同一个位置,end1=end2,直接排除C和D

这种题,画个图就很好解决了:

数组的大小不难看出是M个,但是题目说队列最多能容纳M-1个元素,那就代表队列种最后一个元素的序号是M-2,end2指向最后一个元素的后一个位置,end2=M-1,如图可知,(end2+1)mod M=end1

第四题

解析:

直接写出图示二叉树的中序遍历序列:左根右

d e b x a c

很显然x的左右是ba很显然选D

第五题

解析:

对付这种题直接画一个特殊的树就好了:树转二叉树:兄弟变成右子树,孩子变成左子树。

叶子结点没有孩子,我们说树转二叉树的过程中,孩子会变成左子树,左孩子指针为空也就是没有左字数,也就代表该结点没有孩子,没有孩子的结点就是叶子结点。

答案选C

第六题

解析:

对于一个前缀编码有一个特点叫前缀不是前缀:对于一个前缀编码里面的任何一个元素都不是其它元素的前缀。

我们看D选项:

110是1110的前缀,D错

答案选D。

第七题:

解析:一个一个分析选项;拓扑序列是每次找入度为0的结点,并删除与之相连的线。

A:24显然不对,2的入度不是0,56显然不对,5的入度不是0        A错

B:和A一样的问题:24

C:和A一样的问题:56

答案选D

第八题:

解析:
存储效率和装填因子反应的是,顺序表中已经存储或者说装填的元素个数/总个数,和堆不堆积没关系。A和C错。

直接影响的应该是查找效率,在不堆积的情况下,查找效率高,通常能一次直接命中,如果发生了堆积,查找到当前位置发现不是该元素后,可能还要依次向后查找,以线性探测法为例。大大增大了查找长度。

答案选D

第九题

解析:

回顾一下B树的性质:

对于n阶B树的根节点,关键字的个数是[1,n-1]

对与n阶B树的非根结点,关键字的个数是【[n/2]向上取整-1,n-1】

回到这题:

题目要含关键字的结点个数最多,因为关键字的个数是有限的是15个,则要使每个结点的关键字最少。

我们可以算出,根节点最少是1个关键字,非根结点最少是4/2-1=1个关键字。

B树是一个完全二叉树。

因此直接画图:

正好是15个结点

选D。

第十题:

解析:

回顾一下希尔排序:设置一个间隔d,依次对i,i+d这两个元素进行排序。

也就是说经过一趟排序之后,间隔为d的两个元素,一定是有序的。

A.d=2,9-1是减序,1-13是升序,显然错。

B.d=3,B对

答案选B

第十一题:

解析:

快速排序每次都能确定一个元素的最终位置,且这个元素的左边都小于这个元素,这个元素的右边都大于这个元素。

经过两趟排序,至少能确定两个元素的最终位置。

我们直接写出排好序的最后的顺序是:2,3,4,5,6,7,9

A.23679的位置对了

B.29的位置对了

C.就一个9的位置是对的,我们说至少能确定两个元素的位置,C错

D.59的位置是对的。

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

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

相关文章

车辆行人转向意图状态检测系统源码分享

车辆行人转向意图状态检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of …

【Python】Maya:为人类打造的 Python 日期时间库

不知道少了什么,总感觉没有以前快乐。 在编程中处理日期和时间总是一个挑战,尤其是当涉及到时间和时区的转换时。Maya 是一个由 Kenneth Reitz 开发的 Python 库,旨在简化日期时间的处理,使其对人类开发者更加友好。本文将介绍 M…

如何在jupyter notebook中使用虚拟环境

一:在cmd中打开已经创建好的虚拟环境 二:安装ipykernel conda install ipykernel 三:安装牛逼conda conda install -c conda-forge nb_conda 四:运行jupyter notebook,选择虚拟环境

linux强制关闭再启动后zookeeper无法启动

1、若开启了zkserver就先关闭zkserver 查看zkserver是否启动 sh zkServer.sh status关闭zkServer sh zkServer.sh stop2、更改conf/zoo.cfg 将这里的启动端口改为2183 3、启动zkServer sh zkServer.sh start4、以2183端口启动zkCli zkCli.sh -server 127.0.0.1:2183这样启…

传知代码-基于多尺度动态卷积的图像分类

代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 概述 在计算机视觉领域,图像分类是非常重要的任务之一。近年来,深度学习的兴起极大提升了图像分类的精度和效率。本文将介绍一种基于动态卷积网络(Dynamic Convolutional Netw…

机器人机构、制造

简单整理一下,在学习了一些运动学和动力学之类的东西,简单的整合了一些常用的机械结构和图片。 1.电机: 市面上的电机有:直流电机,交流电机,舵机,步进电机,电缸,无刷电…

【无人机设计与控制】 基于matlab的蚁群算法优化无人机uav巡检

摘要 本文使用蚁群算法(ACO)优化无人机(UAV)巡检路径。无人机巡检任务要求高效覆盖特定区域,以最小化能源消耗和时间。本研究提出的算法通过仿生蚁群算法优化巡检路径,在全局搜索和局部搜索中平衡探索与开…

【软件工程】成本效益分析

一、成本分析目的 二、成本估算方法 三、成本效益分析方法 课堂小结 例题 选择题

深度之眼(三十)——pytorch(一)--深入浅出pytorch(附安装流程)

文章目录 一、前言一、pytoch二、六个部分三、如何学习四、学习路径(重要)五、安装pytorch5.1 坑15.2 坑2 一、前言 我看了下目录 第一章和第二章都是本科学的数字图像处理。 也就是这一专栏:数字图像实验。 所以就不准备学习前两章了,直接…

一文详解大语言模型Transformer结构

目录 1. 什么是Transformer 2. Transformer结构 2.1 总体结构 2.2 Encoder层结构 2.3 Decoder层结构 2.4 动态流程图 3. Transformer为什么需要进行Multi-head Attention 4. Transformer相比于RNN/LSTM,有什么优势?为什么? 5. 为什么说Transf…

MySQL --数据类型

文章目录 1.数据类型分类2.数值类型2.1 tinyint类型2.2 bit类型2.3小数类型2.31float2.32decimal 3.字符串类型3.1 char3.2varchar3.3 char和varchar比较 4.日期和时间类型5.enum和set 1.数据类型分类 2.数值类型 2.1 tinyint类型 数值越界测试: create table tt1…

C++ Qt 之 QPushButton 好看的样式效果实践

文章目录 1.前序2.效果演示3.代码如下 1.前序 启发于 edge 更新 web 页面,觉得人家做的体验挺好 决定在Qt实现,方便以后使用 2.效果演示 特性介绍: 默认蓝色鼠标移入 渐变色,鼠标变为小手鼠标移出 恢复蓝色,鼠标恢…

计算机毕业设计之:基于uni-app的校园活动信息共享系统设计与实现(三端开发,安卓前端+网站前端+网站后端)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

006——队列

队列: 一种受限的线性表(线性逻辑结构),只允许在一段进行添加操作,在另一端只允许进行删除操作,中间位置不可操作,入队的一端被称为队尾,出队的一端被称为队头,在而我们…

作业报告┭┮﹏┭┮(Android反调试)

一:Android反调试 主要是用来防止IDA进行附加的,主要的方法思路就是,判断自身是否有父进程,判断是否端口被监听,然后通过调用so文件中的线程进行监视,这个线程开启一般JNI_OnLoad中进行开启的。但是这个是…

Java语言程序设计基础篇_编程练习题**18.31 (替换单词)

目录 题目:**18.31 (替换单词) 习题思路 代码示例 运行结果 替换前 替换后 题目:**18.31 (替换单词) 编写一个程序,递归地用一个新单词替换某个目录下的所有文件中出现的某个单词。从命令行如下传递参数: java Exercise18…

C++标准库双向链表 list 中的insert函数实现。

CPrimer中文版(第五版): //运行时错误:迭代器表示要拷贝的范围,不能指向与目的位置相同的容器 slist.insert(slist.begin(),slist.begin(),slist.end()); 如果我们传递给insert一对迭代器,它们不能…

【有啥问啥】深度剖析:大模型AI时代下的推理路径创新应用方法论

深度剖析:大模型AI时代下的推理路径创新应用方法论 随着大规模预训练模型(Large Pretrained Models, LPMs)和生成式人工智能的迅速发展,AI 在多领域的推理能力大幅提升,尤其是在自然语言处理、计算机视觉和自动决策领…

【C++11】异常处理

目录 一、异常的引入 二、C异常的关键字 三、异常的抛出与处理规则 四、异常缺陷的处理 五、自定义异常体系 六、异常规范 七、异常安全 八、异常的优缺点 1.优点 2.缺点 一、异常的引入 传统的C语言处理异常的方式有两种: 1.终止程序:使用as…

[WMCTF2020]Make PHP Great Again 2.01

又是php代码审计,开始吧. 这不用审吧,啊喂. 意思就是我们要利用require_once()函数和传入的file的value去读取flag的内容.,貌似呢require_once()已经被用过一次了,直接读取还不行,看一下下面的知识点. require_once() require…