14年数据结构

第一题

解析:

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

假设最外层执行了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的位置是对的。

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

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

相关文章

基于协同过滤+python+django+vue的音乐推荐系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤pythondjangovue…

【前端】ES6:Class语法和Class继承

文章目录 1 Class语法1.1 类的写法1.2 getter与setter1.3 静态属性和静态方法 2 Class继承 1 Class语法 1.1 类的写法 class Person {constructor(name,age){this.name name;this.age age;}say(){console.log(this.name,this.age)} } let obj new Person("kerwin&quo…

双击热备 Electron网页客户端

安装流程: 1.下载node.js安装包进行安装 2.点击Next; 3.勾选,点击Next; 4.选择安装目录 5.选择Online 模式 6.下一步执行安装 。 7.运行cmd,执行命令 path 和 node --version,查看配置路径和版本 8.Goland安装插件node.js 9.配置运行…

【C#】内存的使用和释放

在 C# 中,内存管理主要是由 .NET 的垃圾回收器(Garbage Collector, GC)自动处理的。然而,了解如何正确地使用和释放内存对于编写高效且可靠的代码非常重要。以下是一些关键点和最佳实践: 1. 内存分配 托管资源&#x…

【我的 PWN 学习手札】House Of Karui —— tcache key 绕过手法

目录 前言 一、House of Karui 二、测试与模板 前言 早期版本的 tcachebin 由于毫无保护,导致攻击利用非常容易,成为重灾区。tcache dup,也即 tcachebin 中的 double free 利用手法,是攻击者常常选用的攻击方式。然而&#xf…

计算机网络(八) —— Udp协议

目录 一,再谈端口号 1.1 端口号 1.2 netsta命令 二,UDP协议 2.1 关于UDP 2.2 Udp协议格式 2.3 Udp协议特点 2.4 Udp的缓冲区 一,再谈端口号 http协议本质是“请求 - 响应”形式的协议,但是应用层需要先将数据交给传输层&…

机器人时代的“触觉革命”:一块小传感器如何颠覆你的认知?

你是否曾经想过,机器人也能像人类一样有“触觉”?不再是简单的机械操作,而是具备真正的感知能力,能够学会精细的任务。今天我想和你聊聊一种让机器人“长出触觉”的技术:一种小巧的触觉传感器,它的名字叫“AnySkin”。别看它小,它的潜力可一点都不小,或许能彻底改变我们…

[PICO VR眼镜]眼动追踪串流Unity开发与使用方法,眼动追踪打包报错问题解决(Eye Tracking/手势跟踪)

前言 最近在做一个工作需要用到PICO4 Enterprise VR头盔里的眼动追踪功能,但是遇到了如下问题: 在Unity里面没法串流调试眼动追踪功能,根本获取不到Device,只能将整个场景build成APK,安装到头盔里,才能在…

【机器学习(七)】分类和回归任务-K-近邻 (KNN)算法-Sentosa_DSML社区版

文章目录 一、算法概念二、算法原理(一)K值选择(二)距离度量1、欧式距离2、曼哈顿距离3、闵可夫斯基距离 (三)决策规则1、分类决策规则2、回归决策规则 三、算法优缺点优点缺点 四、KNN分类任务实现对比&am…

数据结构--链表

文章目录 链表1.链表的特点2.链表的基础操作2.1增2.2删 3.自定义链表3.1 自定义单向链表3.2 自定义双向链表 链表 链表是一种常见的数据结构,由一系列节点构成,每个节点包含当前节点的数据和一个指针(单向链表)或者两个指针(双向链表),链表是…

渗透测试入门学习——php表单form与POST、GET请求练习

最终效果&#xff1a; 必填项为空报错提示&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>php表单练习</title> </head> <body> <?php//php中的…

Aegisub字幕自动化及函数篇(图文教程附有gif动图展示)(一)

目录 自动化介绍 bord 边框宽度 随机函数 fsvp 随机颜色 move 自动化介绍 自动化介绍:简单来说自动化能让所有字幕行快速拥有你指定的同一种特效 对时间不同的行应用相同的效果 只要设计好一个模板&#xff0c;然后让所有行都执行这个模板上的特效就好了 首先制作模板行…

PyCharm的使用

PyCharm的入门使用教程 下载和安装PyCharm&#xff1a; 首先&#xff0c;访问JetBrains官方网站&#xff08;https://www.jetbrains.com/pycharm/&#xff09;下载PyCharm的最新版本。根据您的操作系统选择合适的版本进行下载。 安装完成后&#xff0c;打开PyCharm。 创建新…

Java只有国人在搞了?

从Java诞生到现在&#xff0c;在全球一直属于最大的开发平台&#xff0c;拥有着世界上最多的开发者和最活跃的社区。你说Java只有国人在搞就有点过分了&#xff0c;Java中常用的主流框架全是外国人写的&#xff0c;虽说阿里也为Java做了很多贡献&#xff0c;但你还真没有资格说…

网络丢包定位记录(二)

网卡驱动丢包 查看&#xff1a;ifconfig eth1/eth0 等接口 1.RX errors: 表示总的收包的错误数量&#xff0c;还包括too-long-frames错误&#xff0c;Ring Buffer 溢出错误&#xff0c;crc 校验错误&#xff0c;帧同步错误&#xff0c;fifo overruns 以及 missed pkg 等等。 …

基于Windows系统以tomcat为案例,讲解如何新增自启动服务,定时重启服务。

文章目录 引言I 设置服务自启动的常规操作II 安装多个tomcat服务,并设置自启动。III 定时重启服务引言 为了同一个版本安装多个tomcat服务,并设置自启动。使用Windows的任务计划程序来创建一个定时任务,用于重启Tomcat服务。I 设置服务自启动的常规操作 运行窗口输入control…

Agile Modbus STM32裸机移植 从机使用

本教程手把手教你实现Agile Modbus,照抄就能成。 并且会解读函数功能含义。 1. 引言 Agile Modbus 是一个轻量级的 Modbus 协议栈,可以满足用户在任何场景下的需求。 功能 支持 rtu 和 tcp 协议,使用纯 C 语言开发,不涉及任何硬件接口,可以直接在任何形式的硬件上使用。由…

大数据-143 - ClickHouse 集群 SQL 超详细实践记录!

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

Android TV RecyclerView列表获得焦点左右换行

在TV上&#xff0c;用RecyclerView显示一个列表&#xff0c;飞鼠遥控左右遥控获得Item焦点&#xff0c;到最后一个进行右移动换行&#xff0c;是不能做到的&#xff0c;因此需要监听key事件处理换行。 效果图如下 代码实现 Item.xml布局 <?xml version"1.0" e…

Layout 布局组件快速搭建

文章目录 设置主题样式变量封装公共布局组件封装 Logo 组件封装 Menu 菜单组件封装 Breadcrumb 面包屑组件封装 TabBar 标签栏组件封装 Main 内容区组件封装 Footer 底部组件封装 Theme 主题组件 经典布局水平布局响应式布局搭建 Layout 布局组件添加 Layout 路由配置启动项目 …