2012年408考研真题-数据结构

8.【2012统考真题】求整数n(n≥0)的阶乘的算法如下,其时间复杂度是()。

int fact(int n){

if(n<=1) return 1;

return n*fact (n-1);

}

A. O(log2n)        B. O(n)        C. O(nlog2n)        D. O(n^2)

解析:

观察代码,我们不难发现使用了递归调用。递归调用要找出口,也就是跳出递归的条件。

本题跳出递归的条件是n=1;从fact(n)不断地往下递归知道fact(1),在这过程中,总共执行了n次,时间复杂度为O(n).

11.【2012统考真题】已知操作符包括“+”、“-”、“*”、“/”、“(”和“)”。将中缀表达式a+b-a*((c+d)/e-f)+g转换为等价的后缀表达式ab+acd+e/f-*-g+时,用栈来存放暂时还不能确定运算次序的操作符。栈初始时为空时,转换过程中同时保存在栈中的操作符的最大个数是(A)。A.5        B.7        C.8        D.11

解析:

a输出,+存入栈内,b输出,操作符进栈讲究一个够强才进,-和+是平级的,只能让+先输出出来,-再进去,这时候栈内的存的个数任然是1个。

接下来是a,输出a,然后是*,*够强存入栈中,接着是((够强,存入栈中,输出c,接下来是+,此时栈里面最上层是(,所以+也存入栈内,此时栈内存的操作符个数是5个了。

接着输出d,然后是),)仍爱着(,它俩要私奔,所以栈内+输出,(输出,接着是/,/直接进入栈内,接下来直接输出字母e,接着是-,因为此时栈内是/号,/号更强,-不能直接进,让/直接输出,-进入,然后是f,输出f,接着是),因为要私奔,栈内输出-和(,然后是+,此时栈顶是*,需要先将*输出,再让+进入,此时栈内存过的最大的个数是5个,选A。

30.[2012统考真题]若一棵二叉树的前序遍历序列为 a,e,b,d.c.后序遍历序列为 b.c.d,e,a,则根结点的孩子结点()。

A.只有e        B.有 e、b        C.有e、c        D.无法确定

解析:

前序遍历序列:根左右。

后序遍历序列:左右根。

前序遍历序列第一个是a,a是根结点,但是在后序遍历序列中a是最后一个。

以下面这个例子来看,作为根结点A的两个孩子,结点B和C在前序遍历中是ABC,

在后序遍历中是BCA,不管是前序还是后序他们的相对位置是不变的。

带着这样一个结论来看这道题:

因为前序遍历第二个结点e,

假设如果有左孩子,那左孩子的根结点一定是e。

假设如果没有左孩子,那右子树的根结点一定也是e。

也就是说根结点的孩子结点必有e。

假设根结点的孩子结点有两个,则这两个孩子结点在前序遍历序列和后序遍历序列中的相对位置是不变的。

看B选项,e和b在前序遍历序列中是e在前b在后,在后序遍历序列中是b在前e在后。

相对位置变了,b不是根结点的叶子结点。B错

同理可以证明B错,C错。

20.[2012统考真题]若平衡二叉树的高度为 6,且所有非叶子结点的平衡因子均为1,则该平衡二叉树的结点总数为(B)。

A.12        B.20        C.32        D.33

解析:

平衡因子:左右子树的高度之差。

我们不难得出这样一个结论:对于一个所有非叶子结点的平衡因子都为1,且高度为h的平衡二叉树,它的结点总数为高度为h-1和h-2的同类树的结点总数再+1;

如何h=3的结点个数是树高为1+树高为2的同类树的结点个数再+1;

我们接着算出h=4,h=5,h=6时的结点个数。

h=4 : 2+4+1=7

h=5 : 4+7+1=12

h=6  :   7+12+1=20 

算出答案:20选B

14.对有n个顶点、e条边且使用邻接表存储的有向图进行广度优先遍历,其算法的时间复杂度是)。

A.O(n)        B. O(e)        C.O(n+e)        D. O(ne)

解析:

对有n个顶点、e条边的有向图,不管是BFS广度优先遍历还是DFS深度优先遍历,它的时间复杂度都和使用的存储方式有关。

使用邻接表存储方式的,时间复杂度是O(n+e)

使用邻接矩阵存储的,时间复杂度是O(n^{2})

21.【2012统考真题】若用邻接矩阵存储有向图,矩阵中主对角线以下的元素均为零,则关于该图拓扑序列的结论是()。

A.存在,且唯一

B.存在,且不唯一

C.存在,可能不唯一

D.无法确定是否存在

解析:

,由图可知,只有当i<j时存在边。

且只存在0-1,0-2,0-3,1-2,1-3的边,不存在回路,也就没有环。

那这就是一个无环图。

有向无环图是存在拓扑序列的,所以D错

拓扑序列在图1:是不唯一的。

在图二:是唯一的。

答案选C。

19.【2012统考真题】对下图所示的有向带权图,若采用Dijkstra算法求从源点a到其他各顶点的最短路径,则得到的第一条最短路径的目标顶点是b,第二条最短路径的目标顶点是c,后续得到的其余各最短路径的目标顶点依次是()。

A.d,e,f        B.e,d,f        C.f,d,e        D.f,e,d

解析:

18.【2012统考真题】下列关于最小生成树的叙述中,正确的是(A)。

I.最小生成树的代价唯一。

II.所有权值最小的边一定会出现在所有的最小生成树中。

III.使用Prim算法从不同顶点开始得到的最小生成树一一定相同。

Ⅳ.使用Prim算法和Kruskal算法得到的最小生成树总不相同。

A.仅I        B.仅Ⅱ        C.仅I、Ⅲ        D.仅Ⅱ、Ⅳ

解析:

生成树的代价最小才能称为最小生成树,因此代价一定是唯一的。I对。

II不一定,以下图为例:

使用prim算法得到的结果不唯一,因为一个点如果几条边的权值都是一样的话,那它就有几条路线选择的可能性,因此不唯一,生成的最小生成树肯定不是唯一相同的。III错。

如果连通图的最小生成树是唯一的,那么不管用什么算法都是唯一的一种。Ⅳ错。

12.【2012统考真题】已知一棵3阶B树,如下图所示。删除关键字78得到一棵新B树,其最右叶结点中的关键字是(D)。

A.60        B.60, 62        C.62, 65        D.65

解析:78去掉后,需要找一个新的元素添上,这里直接找它的前驱65,然后62填补上65的空缺。所以最右边叶子结点中的关键字是65。

10.【2012统考真题】在内部排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一趟排序。下列排序方法中,每趟排序结束都至少能够确定一个元素最终位置的方法是()。

 I.简单选择排序

Ⅱ.希尔排序

Ⅲ.快速排序

Ⅳ.2路归并排序

V.堆排序

A.仅I、Ⅲ、Ⅳ

B.仅I、Ⅲ、V

C.仅II、Ⅲ、Ⅳ

D.仅Ⅲ、Ⅳ、V

解析:

 I.简单选择排序:每次都能在待排的队列中选出一个最小或者最大的出现在头或尾。I是对的。

Ⅱ.希尔排序:举一个反例:

Ⅲ.快速排序,每趟排序过后,这个数左边的全小于它,右边的数全大于它,能确定位置。
Ⅳ.堆排序:前面的能确定比这个数小,后面的能确定比这个数大。堆排序能确定位置。

V.2路归并排序:

举一个反例:

4321

3412

1234

2路归并排序不能确定最终位置。

16.【2012统考真题】对同一待排序序列分别进行折半插入排序和直接插入排序,两者之间可能的不同之处是()。

A.排序的总趟数

B.元素的移动次数

C.使用辅助空间的数量

D.元素之间的比较次数

解析:

折半插入排序是在直接插入排序的基础上,在将数插入到已排序的过程中,使用了折半查找的思想,折半查找显然能大幅度减少元素的比较次数。

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

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

相关文章

Matlab Simulink 主时间步(major time step)、子时间步(minor time step)

高亮颜色说明&#xff1a;突出重点 个人觉得&#xff0c;&#xff1a;待核准个人观点是否有误 高亮颜色超链接 文章目录 对Simulink 时间步的理解Simulink 采样时间的类型Discrete Sample Times(离散采样时间)Controllable Sample Time(可控采样时间) Continuous Sample Times(…

在MAC中Ollama开放其他电脑访问

ollama安装完毕后默认只能在本地访问&#xff0c;之前我都是安装其他的软件之后可以结合开放其他端口访问&#xff0c;其实是可以新增或修改下电脑的系统配置&#xff0c;就可以打开端口允许除本机IP或localhost访问。 步骤如下&#xff1a; 1、查看端口&#xff08;默认是&…

Shelly实测天工的音乐创作功能,写了一首歌,来听听效果

​ 大家好&#xff0c;我是Shelly&#xff0c;一个专注于输出AI工具和科技前沿内容的AI应用教练&#xff0c;体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具&#xff0c;拥抱AI时代的到来。 在数字时代的洪流中&#xff0c;我始终…

杀软对抗 ---> Perfect Syscall??

好久没更了&#xff0c;今天想起来更新了&#x1f60b;&#x1f60b;&#x1f60b;&#x1f60b; 目录 1.AV && EDR 2.Perfect Syscall&#xff1f;&#xff1f; 3.Truly Perfect ??? 在开始之前先来展示一下这次的免杀效果 1.AV && EDR 360 天擎EDR …

Python模块和包:自定义模块和包③

文章目录 一、模块1.1 什么是模块1.2 创建模块1.3 导入模块1.4 模块的命名空间 二、包2.1 什么是包2.2 创建包2.3 导入包2.4 包的命名空间 三、综合详细例子3.1 项目结构3.2 模块代码student.pycourse.pymanager.py 3.3 主程序代码main.py 3.4 运行结果 四、总结 Python模块和包…

Apifox 「定时任务」操作指南,解锁自动化测试的新利器

定时任务是按照预设时间自动执行的任务&#xff0c;它可以有效解决一些常见问题&#xff0c;比如频繁执行的回归测试和大规模的接口测试&#xff0c;这些任务需要在固定时间点或间隔周期内自动运行&#xff0c;以确保软件的持续集成和持续交付过程中的稳定性和可靠性。通过使用…

计算机网络34——Windows内存管理

1、计算机体系结构 2、内存管理 分为连续分配管理和非连续分配管理 在块内存在的未使用空间叫内部碎片&#xff0c;在块外存在的未使用空间叫外部碎片 固定分区分配可能出现内部碎片&#xff0c;动态分区分配可能出现外部碎片 3、逻辑地址和实际地址的互相转换 4、缺页中断 …

微信支付商户 - 如何开通商家转账到零钱

商家转账到零钱功能的快速开通&#xff0c;需要商家遵循一系列步骤并确保所有条件符合微信支付的要求。以下是一些关键步骤和注意事项&#xff0c;以确保商家可以最快开通该功能&#xff1a; 一、确认申请资格 1. 公司性质&#xff1a;确保申请主体为公司性质&#xff08;有限…

【Docker】安装全流程与配置完整镜像源(可安装 nginx)

目录 一、卸载历史版本&#xff08;选&#xff09;二、配置 yum 源三、安装 docker四、配置 docker 镜像源加速&#xff08;选、强烈建议&#xff09;4.1 配置阿里镜像加速4.2 配置其他镜像源 五、启动 docker参考文章与视频 本文基于 Linux - CentOS 7 操作系统。 一、卸载历史…

Unity3D入门(二) :Unity3D实现视角的丝滑过渡切换

1. 前言 上篇文章&#xff0c;我们已经初步了解了Unity3D&#xff0c;并新建并运行起来了一个项目&#xff0c;使相机视角自动围绕着立方体旋转。 这篇文章&#xff0c;我们来讲一下Unity3D怎么过渡地切换视角。 我们继续是我上篇文章中的项目&#xff0c;但是需要向把Camera…

TFT-LCD显示屏(1.8寸 STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 3.工作原理&#xff1a;TFT-LCD色彩空间 三、程序设计 main.c文件 lcd.h文件 lcd.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 TFT-LCD&#xff0c;全称Thin Film Transistor Liquid Crystal Display&a…

Golang | Leetcode Golang题解之第409题最长回文串

题目&#xff1a; 题解&#xff1a; func longestPalindrome(s string) int {mp : map[byte]int{}for i : 0; i < len(s); i {mp[s[i]]}res : 0for _, v : range mp {if v&1 1 {res v - 1} else {res v}}if res<len(s) {res}return res }

C++笔记21•C++11的新特性•

相比于 C98/03&#xff0c;C11则带来了数量可观的变化&#xff0c;其中包含了约140个新特性&#xff0c;以及对C03标准中约600个缺陷的修正&#xff0c;这使得C11更像是从C98/03中孕育出的一种新语言。相比较而言&#xff0c;C11能更好地用于系统开发和库开发、语法更加泛华和简…

如何合并pdf文件,四款软件,三步搞定!

在数字化办公的浪潮中&#xff0c;PDF文档因其跨平台兼容性和安全性&#xff0c;成为了我们日常工作中不可或缺的一部分。然而&#xff0c;面对多个PDF文件需要整合成一个文件时&#xff0c;不少小伙伴可能会感到头疼。别担心&#xff0c;今天我们就来揭秘四款高效PDF合并软件&…

演示:基于WPF的DrawingVisual开发的Chart图表和表格绘制

一、目的&#xff1a;基于WPF的DrawingVisual开发的Chart图表和表格绘制 二、预览 钻井井轨迹表格数据演示示例&#xff08;应用Table布局&#xff0c;模拟井轨迹深度的绘制&#xff09; 饼图表格数据演示示例&#xff08;应用Table布局&#xff0c;模拟多个饼状图组合显示&am…

尚品汇-秒杀商品定时任务存入缓存、Redis发布订阅实现状态位(五十一)

目录&#xff1a; &#xff08;1&#xff09;秒杀业务分析 &#xff08;2&#xff09;搭建秒杀模块 &#xff08;3&#xff09;秒杀商品导入缓存 &#xff08;4&#xff09;redis发布与订阅实现 &#xff08;1&#xff09;秒杀业务分析 需求分析 所谓“秒杀”&#xff0…

又到了金九银十,你的简历写好了吗?

又到了金九银十的招聘季&#xff0c;不过这几年求职环境越来越差&#xff0c;相比于跳槽找新机会&#xff0c;大家可能更倾向于守住自己手头的工作&#xff0c;稳字当头。当然&#xff0c;也有很多工作实在干烦了的朋友&#xff0c;想要换个新赛道试试。今天就给大家带来一个新…

django实现开发、测试、生产环境配置区分

文章目录 一、为什么要区分开发 (dev)、测试 (test) 和生产 (prod) 环境二、django项目如何通过配置实现环境配置的区分1、针对不同的环境创建不同的设置文件settings.py2、在设置文件中根据需要进行配置区分3、根据不同的环境运行使用不同的设置文件 任何实际的软件项目中都要…

【中级通信工程师】终端与业务(二):终端产品

【零基础3天通关中级通信工程师】 终端与业务(二)&#xff1a;终端产品 本文是中级通信工程师考试《终端与业务》科目第二章《终端产品》的复习资料和真题汇总。终端与业务是通信考试里最简单的科目&#xff0c;有效复习通过率可达90%以上&#xff0c;本文结合了高频考点和近几…

医学数据分析实训 项目三 关联规则分析作业--在线购物车分析--痹症方剂用药规律分析

文章目录 项目三 关联规则分析一、实践目的二、实践平台三、实践内容任务一&#xff1a;在线购物车分析&#xff08;一&#xff09;数据读入&#xff08;二&#xff09;数据理解&#xff08;三&#xff09;数据预处理&#xff08;四&#xff09;生成频繁项集&#xff08;五&…