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.xdnf.cn/news/143810.html

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

相关文章

【代码】使用c#实现串口通信的基础模板

一、分享代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;using System.IO.Ports; using…

SAP中BW与OFFICE 64位兼容性问题解决实例

近期遇到一个BW与OFFICE的兼容性问题。新电脑(WIN11)安装使用SAP正常&#xff0c;安装OFFICE 2016 64位版时&#xff0c;BEx Aanlysis无法打开(没有提示&#xff0c;下位框不出现)。安装OFFICE 2016 32位版时&#xff0c;BW的Aanlysis可正常使用。 这个BEx Aanlysis我理解是SA…

链表--(1)链表的概念

前言引入 之前我们学习了数组这一概念,使用数组可以在编程时增加程序的灵活性。但在c语言中不允许定义动态数组的类型也不能随意调整数组的大小,往往会导致内存空间的浪费。由此我们推出链表。链表是动态进行内存分配的一种结构,它可以随时为其结点分配需要的存储空间也方便…

爬虫框架之Scrapy介绍——高效方便

# 近年来大数据分析、数据可视化和python等课程逐渐在大学各个学科中铺展开来&#xff0c;这样一来爬虫在平时小作业和期中、期末报告中出现的频率也逐渐变高。那么单一的使用requests库&#xff0c;自己从头到尾的的设计&#xff0c;考虑数据提取、线程管理和数据存储等方方面…

干货:分享6款ai论文写作助手,一键生成原创论文(步骤+工具)

写一篇论文是一个复杂的过程&#xff0c;涉及多个步骤&#xff0c;包括选题、研究、撰写、编辑和校对。AI可以在其中的一些步骤中提供帮助&#xff0c;但最终的论文还是需要人类作者的深入思考和创造性输入。以下是六款值得推荐的AI论文写作助手&#xff0c;其中特别推荐千笔-A…

前端开发之原型模式

介绍 原型模式本质就是借用一个已有的实例做原型&#xff0c;在这原型基础上快速复制出一个和原型一样的一个对象。 class CloneDemo {name clone democlone(): CloneDemo {return new CloneDemo()} } 原型原型链 函数&#xff08;class&#xff09;都有显示原型 prototyp…

Redis-01 入门和十大数据类型

Redis支持两种持久化方式&#xff1a;RDB持久化和AOF持久化。 1.RDB持久化是将Redis的数据以快照的形式保存在磁盘上&#xff0c;可以手动触发或通过配置文件设置定时触发。RDB保存的是Redis在某个时间点上的数据快照&#xff0c;可以通过恢复RDB文件来恢复数据。 2.AOF持久化…

深蓝学院-- 量产自动驾驶中的规划控制算法 小鹏

文章目录 0. 前言1.发展现状2.行车功能中难点问题及解决思路问题1&#xff1a;车道居中辅助&#xff0c;画龙&#xff0c;蛇行问题。问题2&#xff1a;外界环境扰动以及传感器信息缺失下的横向控制难点问题3&#xff1a;大坡度平稳停车 3. 泊车功能中难点问题及解决思路问题1&a…

尚品汇-秒杀下单实现-页面轮询查询订单状态(五十三)

目录&#xff1a; &#xff08;1&#xff09;整合秒杀业务 &#xff08;2&#xff09;秒杀下单 &#xff08;3&#xff09;秒杀下单监听 &#xff08;4&#xff09;页面轮询接口 &#xff08;1&#xff09;整合秒杀业务 秒杀的主要目的就是获取一个下单资格&#xff0c;拥…

【iOS】——JSONModel源码

JSONModel用法 基本用法 将传入的字典转换成模型&#xff1a; 首先定义模型类&#xff1a; interface Person : JSONModel property (nonatomic, copy) NSString *name; property (nonatomic, copy) NSString *sex; property (nonatomic, assign) NSInteger age; end接…

索引的介绍

目录 1.索引的介绍 1.1 什么是索引 1.2 为什么要使用索引 2.索引应该选择哪种数据结构 3.MYSQL中的页 3.1为什么要使用页 3.2页文件头和页文件尾 3.3 页主体 3.3页目录 3.4数据页头 4.B在MYSQL索引中的应用 4.1计算三层树高的B树可以存放多少条记录 5.索引分类 5.1 主…

居中左右对齐且加粗的蓝色文本

//test.html <!DOCTYPE html> <html> <head> <title>我的网页</title> <link rel"stylesheet" href"styles.css"> </head> <body> <p class"left-text">这是居左对齐且加粗的…

Element走马灯组件循环播放两个页面是方向不一致

摘要&#xff1a;使用Carousel 走马灯循环播放同一类型的图片、文字等内容&#xff0c;会在循环内容为两组是出现下图 [1]中的现象。本文记录下如何解决 之前项目遇到过一次这个问题&#xff0c;由于indicator-position 指示器不用显示&#xff0c;则判断内容长度为2时&#xf…

springboot通过tomcat部署项目(包含jar、war两种方式,迄今为止全网最详细!2024更新..建议收藏,教学!万字长文!)

本博客参考的所有文章均已在结尾声明&#xff01;&#xff01;&#xff01; 在 Spring Boot 项目中&#xff0c;有两种常见的部署方式&#xff1a; 1、使用 Spring Boot 自带的 内置 Tomcat&#xff0c;将项目打包为 jar 并直接运行。 2、使用 外置 Tomcat&#xff0c;将项目打…

【电路笔记】-运算放大器比较器

运算放大器比较器 文章目录 运算放大器比较器1、概述2、表示2.1 同相比较器2.2 反相比较器3、临界点转换4、施密特触发器4.1 同相触发器4.2 反相触发器4.3 应用5、总结1、概述 在前面的大多数运算放大器文章中,电路都有一个到反相输入的反馈环路。 这种设计是最常见的,因为它…

海外社媒干货:Twitter的特点及运营策略

当你在海外社交媒体上运营&#xff0c;了解不同平台的特点和具体实践是非常重要的。本期让小编来为你介绍推特&#xff08;Twitter&#xff09;以及一些相关的运营干货&#xff1a; &#xff08;图片源于网络&#xff09; Twitter简介 推特是一家美国社交网络及微博客服务的公…

通过Python代码发送量化交易信号邮件通知

量化交易利用数学模型和计算机算法来分析市场数据,并生成交易信号,本文将介绍如何使用Python编写一个简单的脚本,通过发送邮件通知量化交易信号。 开启SMTP服务 首先要在发件箱的邮件设置中,将POP3/SMPT服务开启,记录下授权密码,在本地可通过此密码登录,注意有效期和保…

【C++ Primer Plus习题】16.9

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: #include <iostream> #include <ctime> #include <v…

6000 字掌握 Java IO 知识体系

“子谦&#xff0c;Java IO 也太上头了吧&#xff1f;”新兵蛋子小二向头顶很凉快的老韩抱怨道&#xff0c;“你瞧&#xff0c;我就按照传输方式对 IO 进行了一个简单的分类&#xff0c;就能搞出来这么多的玩意&#xff01;” 好久没搞过 IO 了&#xff0c;老王看到这幅思维导图…

LLM - 理解 多模态大语言模型(MLLM) 的 预训练(Pre-training) 与相关技术 (三)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/142167709 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 完备(F…