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(
)
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.元素之间的比较次数
解析:
折半插入排序是在直接插入排序的基础上,在将数插入到已排序的过程中,使用了折半查找的思想,折半查找显然能大幅度减少元素的比较次数。
相关文章:

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) 解析: 观察代码,我们不…...

【北京迅为】《STM32MP157开发板使用手册》- 第四十章 二值信号量实验
iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐…...

Docker UI强大之处?
DockerUI是一款由国内开发者打造的优秀Docker可视化管理工具。它拥有简洁直观的用户界面,使得Docker主机管理、集群管理和任务编排变得轻松简单。DockerUI不仅能展示资源利用率、系统信息和更新日志,还提供了镜像管理功能,帮助用户高效清理中…...

前端面试题——token安全问题处理与大数据列表展示
1.长时间保存token问题 长时间保存Token涉及多个方面的问题,包括安全性、性能、以及Token的管理策略等。以下是对长时间保存Token问题的详细分析: 一、安全性问题 Token泄露风险: Token是用户身份验证的凭证,如果长时间保存且未…...

Flask项目入门和视图
1、第一个项目的结构 以示例代码中的入口文件app.py为例子 (1)引入Flask以及创建Flask对象 from flask import Flask app Flask(__name__)(2) 路由route 视图函数 app.route(/index/) def hello_world():# 响应:…...
深入理解Lucene:开源全文搜索引擎
目录 引言 Lucene的核心概念 索引 分析器 存储 Lucene的工作流程 创建索引 搜索索引 Lucene核心技术 倒排索引 排序算法 索引压缩与合并 并发控制与实时更新 结论 引言 随着互联网的飞速发展,信息量呈指数级增长,如何有效地管理和检索这些…...
Qt中pro项目文件配置介绍
Qt中,工程文件是以.pro后缀的文件,主要用以包含Qt模块,代码文件,依赖库,以及对项目的一些属性进行配置。 具体看个例子: #这块是添加Qt模块 #.pro文件中使用#号作为注释 QT core gui #QT webengine…...
相亲交友中的用户画像构建方法探讨
随着互联网技术的发展,相亲交友平台成为现代人寻找伴侣的重要渠道之一。在这一过程中,如何精准地为用户推荐合适的对象成为了平台能否成功的关键。本文旨在探讨相亲交友平台中用户画像的构建方法,并分析其对于提高匹配度的重要性(…...
总结
本来想把这个写完再写总结的,但是我发现卡了,明天去问问别人。 今天写上传个文件,没上传好,找到问题了,但是还不知道怎么改,我发给前端成功了,刚刚看了下好像是这里的问题,但是不是…...
C# 开发教程-入门基础
1.C# 简介、环境,程序结构 2.C# 基本语法,变量,控制局域,数据类型,类型转换 3.C# 数组、 循环,Linq 4.C# 类,封装,方法 5.C# 枚举、字符串 6.C# 面相对象,继承࿰…...
Windows上,使用远程桌面连接Ubuntu
要在 Ubuntu 上设置公网 IP 并通过 Windows 远程桌面连接到 Ubuntu,你需要完成以下步骤: 设置 Ubuntu 公网 IP: 确保你的 Ubuntu 服务器已经配置了一个公网 IP 地址。 你可以通过云服务提供商(如 AWS、Azure、Google Cloud&#…...
SharePoint Online 计划 1 部署方案
概述 SharePoint Online 是 Microsoft 365 的一部分,为组织提供了一种高效、灵活的协作平台。SharePoint Online 计划 1(Plan 1)尤其适用于中小型企业,提供了基本的文档管理和协作功能。本文将详细介绍如何部署 SharePoint Online 计划 1,并探讨其配置、管理和最佳实践。…...

kubernetes存储之GlusterFS(GlusterFS for Kubernetes Storage)
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…...

网络安全等保培训 ppt
网络安全等级保护怎么做?...

开关磁阻电机(SRM)系统的matlab性能仿真与分析
目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 SRM的基本结构 4.2 SRM的电磁关系 4.3 SRM的输出力矩 5.完整工程文件 1.课题概述 开关磁阻电机(SRM)系统的matlab性能仿真与分析,对比平均转矩vs相电流,转矩脉动vs相电流&a…...

最新动态一致的文生视频大模型FancyVideo部署
FancyVideo是一个由360AI团队和中山大学联合开发并开源的视频生成模型。 FancyVideo的创新之处在于它能够实现帧特定的文本指导,使得生成的视频既动态又具有一致性。 FancyVideo模型通过精心设计的跨帧文本引导模块(Cross-frame Textual Guidance Modu…...

茴香豆:企业级知识问答工具实践闯关任务
基础任务 在 InternStudio 中利用 Internlm2-7b 搭建标准版茴香豆知识助手,并使用 Gradio 界面完成 2 轮问答(问题不可与教程重复,作业截图需包括 gradio 界面问题和茴香豆回答)。知识库可根据根据自己工作、学习或感兴趣的内容调…...

英飞凌 PSoC6 RT-Thread 评估板简介
概述 2023年,英飞凌(Infineon)联合 RT-Thread 发布了一款 PSoC™ 62 with CAPSENSE™ evaluation kit 开发板 (以下简称 PSoC 6 RTT 开发板),该开发套件默认内置 RT-Thread 物联网操作系统。PSoC 6 RTT 开…...

深度学习笔记(8)预训练模型
深度学习笔记(8)预训练模型 文章目录 深度学习笔记(8)预训练模型一、预训练模型构建一、微调模型,训练自己的数据1.导入数据集2.数据集处理方法3.完形填空训练 使用分词器将文本转换为模型的输入格式参数 return_tenso…...
C#事件的用法
前言 在C#中,事件(Event)可以实现当类内部发生某些特定的事情时,它可以通知其他类或对象。事件是基于委托(Delegate)的,委托是一种类型安全的函数指针,它定义了方法的类型ÿ…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...