中国科学院2001年数据结构试题

一、单项选择题(每空2分,共20分)
1.下列函数中渐近时间复杂度最小的是( )。
A.T1(n)=nlog2n+5000n B.T2(n)=n2-8000n
C.T3(n)=nlog221-6000n D.T4(n)=2nlog2n-7000n
2.线性表的静态链表存储结构与顺序存储结构相比优点是( )。
A.所有的操作算法实现简单
B.便于随机存取
C.便于插入和删除
D.便于利用零散的存储器空间
3.设栈的输入序列为1,2,…,n,输出序列为a1,a2,…,an,若存在1≤k≤n使得ak=n,则当k≤i≤n时,ai为( )。
A.n-i+l B.n-(i-k) C.不确定
4.设高度为h的二叉树(根的层数为1)上只有度为0和度为2的节点,则此类二叉树中所包含的节点数至少为( )。
A.2h B.2h-1 C.2h+l D.h+l
5.设指针p指向线索树中的某个结点,则查找p在某种次序下的前驱或后继不能获得加速的是( )。
A.前序线索树中查找
p的前序后继
B.中序线索树中查找p的中序后继
C.中序线索树中查找
p的中序前继
D.后序线索树中查找*p的后序前继
6.假定有k个关键字互为同义词,若用线性探测法将这k个关键字存入散列表中,至少需要进行( )次探测。
A.k-1 B.k C.k+l D.k(k+1)/2
7.若待排序元素基本有序,则下列排序中平均速度最快的排序是( );若要求辅助空间为O(1),则平均速度最快的排序是( );若要求排序是稳定的,且关键字为实数,则平均速度最快的排序是( )。
A.直接插入排序 B.直接选择排序 C.Shell排序
D.冒泡排序 E.快速排序 F.堆排序
C.归并排序 H.基数排序
8.对于多关键字而言,( )是一种方便而又高效的文件组织文式。
A.顺序文件 B.索引文件 C.散列文件 D.倒排文件
二、问答题(共25分)
1.设A[-2:6;-3:6]是一个用行主序存储的二维数组,已知A[-2,-3]的起始存储位置为loc(-2,-3)=1000,每个数组元素占用4个存储单元,求:(6分)
1)A[4,5]的起始存储位置loc(4,5);
2)起始存储位置为1184的数组元素的下标。
2.给定二叉树的先序和后序遍历序列,能否重构出该二叉树?若能,试证明之,否则给出反例。(6分)
3.在含有n个关键字的m阶B-树中进行查找,至多读盘多少次?完全平衡的二叉排序树的读盘次数大约比它大多少倍?(设两种树中的每个节点均是一个存储块)。(8分)
4.用向量表示的循环队列的队首和队尾位置分别为1和max_size,试给出判断队列为空和为满的边界条件。(5分)
三、阅读程序题(共10分)
1.设G是一个有向无环图,试指出下述算法的功能,输出的序列是G的什么序列?(10分)
void Demo (ALGraph G)
{//G是图的逆邻接表,向量outdegree的各分量初值为0。
for(i=0;i<G.NodeNum;i++)
for(p=G.adjlist[i].firstedge;p;p=p->next)
//扫描i的入边表
outdegree[p->adjvex]++; //设p->adjvex=j,则将<i,j>的起点
j的出度加1
initStack(&s); //设置空栈s
for(i=0;i<G.NodeNum;i++)
if(outdegree[i]==0)
Push(&s,i); //出度为0的顶点i入栈
while(!StackEmpty(s)) //栈s非空
{ i=Pop(&Q); //出栈,相当于删去顶点i
prinft(“%c”,G.adjlist[i].vertex);//输出顶点i
for(p=G.adjlist[i].firstedge;p;p=p->next)
{ //扫描i的入边表
j=p->adjvex; //j是i的入边<j,i>的起点
outdegree[j]–; //j的出度减1,即删去i的入边<j,i>
if(!outdegree[j])
Push(&s’,j); //若j的出度为0,则令其入栈
}//endfor
}//endwhile
}//endDemo
四、算法题(每题15分,共45分)
1.试设计算法在O(n)时间内将数组A[1..n]划分为左右两个部分,使得左边的所有元素值均为奇数,右边的所有元素值均为偶数,要求所使用的辅助存储空间大小为O(1)。
2.试写一递归算法,从大到小输出二叉排序中所有的值不小于x的关键字,要求算法的时间为O(h+m),其中h为树的高度,m为输出的关键字个数。
3.设G是以邻接表表示的无向图,v0是G中的一个顶点,k是一个正的常数。要求写一算法打印出图中所有与v0有简单路径相通,且路径长度小于等于k的所有顶点(不含v0),路径长度由路径上的边数来定义。

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

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

相关文章

MySQL数据表记录删操作

删除操作&#xff1a;作用删除表里的记录行&#xff08;都是整行整行的删除的&#xff09; 1.单表的删除 语法 delete from 表名 where 要删除的记录筛选条件; 案例&#xff1a;删除员工编号大于203的员工信息 delete from employees where employee_id>203; 2.多表的删除…

网络原理04

可靠传输&#xff0c;是TCP最核心的特性 可靠传输不是说数据100%传输给接收方了 1&#xff09;发送方发出数据后&#xff0c;能过知道接收方是否收到数据 2&#xff09;一旦发现对方没收到&#xff0c;可以通过一定的方法”补救” 1. 确认应答 发送方&#xff0c;把数据已…

微信小程序5-图片实现点击动作和动态加载同类数据

搜索 微信小程序 “动物觅踪” 观看效果 感谢阅读&#xff0c;初学小白&#xff0c;有错指正。 一、功能描述 a. 原本想通过按钮加载背景图片&#xff0c;来实现一个可以点击的搜索button&#xff0c;但是遇到两个难点&#xff0c;一是按钮大小调整不方便&#xff08;网上搜索…

Java里局部变量和成员变量的隐式初始化

注&#xff1a;本文是对另一篇文档&#xff08; https://blog.csdn.net/duke_ding2/article/details/142365872 &#xff09;的补充。 文章目录 环境初始化局部变量&#xff08;栈&#xff09;成员变量&#xff08;堆&#xff09;其它数组 分析安全性性能成员变量 VS. 局部变量…

孚盟云 MailAjax.ashx SQL注入漏洞复现

0x01 产品简介 上海孚盟软件有限公司是一家外贸SaaS服务提供商,也是专业的外贸行业解决方案专业提供商。 全新的孚盟云产品,让用户可以用云模式实现信息化管理,让用户的异地办公更加流畅,大大降低中小企业在信息化上成本,用最小的投入享受大型企业级别的信息化服务,主要…

“切片赋值”创建列表批量操作“新”方法(Python)

[start:end]切片赋值&#xff0c;扩展了list批量增减元素的操作能力。 (笔记模板由python脚本于2024年12月06日 15:07:56创建&#xff0c;本篇笔记适合研python基础的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;…

LabVIEW实现GPS通信

目录 1、GPS通信原理 2、硬件环境部署 3、程序架构 4、前面板设计 5、程序框图设计 6、测试验证 本专栏以LabVIEW为开发平台,讲解物联网通信组网原理与开发方法,覆盖RS232、TCP、MQTT、蓝牙、Wi-Fi、NB-IoT等协议。 结合实际案例,展示如何利用LabVIEW和常用模块实现物联网系…

Java简介:打开通往变成世界的大门

Java是什么&#xff1f;为什么它是全球开发者广泛使用的语言&#xff1f;本篇文章介绍Java的特点、应用场景以及“写一次&#xff0c;随处运行”的核心特性&#xff0c;让零基础的你建立对Java语言的初步认知。 注&#xff1a;此文章可以仅作了解&#xff0c;不影响之后的学习。…

Unraid实现相册同步与展示的方案探讨

背景&#xff1a;Unraid作为一个NAS系统&#xff0c;能够实现基本的NAS文件管理功能&#xff0c;但是不提供额外的功能如影音、同步、办公、和内网穿透等&#xff0c;这些在其他的NAS产品如群晖、绿联、威联通等都是提供支持的。然而unraid也有其他方案&#xff0c;即通过特别方…

常见的网络攻击手段

IP 欺骗 IP 是什么? 在网络中&#xff0c;所有的设备都会分配一个地址。这个地址就仿佛小蓝的家地址「多少号多少室」&#xff0c;这个号就是分配给整个子网的&#xff0c;「室」对应的号码即分配给子网中计算机的&#xff0c;这就是网络中的地址。「号」对应的号码为网络号…

积分形式的辐射传输方程

The Equation of Transfer in Integral Form Let L L L be the streaming-collision operator, and S S S is scattering operator, we have L I Ω ⋅ ∇ I ( r , Ω ) σ ( r , Ω ) I ( r , Ω ) LI\Omega\cdot\nabla I(r,\Omega)\sigma(r,\Omega)I(r,\Omega) LIΩ⋅∇…

JS中reduce方法

JavaScript 中的 reduce 方法是一个非常强大的数组方法&#xff0c;它允许你对数组中的所有元素执行一个“reducer”函数&#xff0c;从而将数组“减少”到一个单一的值。以下是 reduce 方法的详细介绍&#xff1a; 语法 array.reduce(function(accumulator, currentValue, c…

印闪网络:阿里云数据库MongoDB版助力金融科技出海企业降本增效

客户背景 上海印闪网络科技有限公司&#xff0c;于2017年1月成立&#xff0c;投资方包括红杉资本等多家国际知名风投公司。公司业务聚焦东南亚普惠金融&#xff0c;常年稳居行业头部。创始团队来自腾讯&#xff0c;中国团队主要由运营、风控及产研人员组成&#xff0c;核心成员…

【后端面试总结】HTTPS工作原理详解

引言 在现代网络通信中&#xff0c;数据的安全性至关重要。HTTP&#xff08;Hypertext Transfer Protocol&#xff09;作为互联网上传输数据的协议&#xff0c;虽然应用广泛&#xff0c;但其数据以明文形式传输&#xff0c;存在被窃取和篡改的风险。为此&#xff0c;HTTPS&…

51c嵌入式~单片机~合集2

我自己的原文哦~ https://blog.51cto.com/whaosoft/12362395 一、不同的电平信号的MCU怎么通信&#xff1f; 下面这个“电平转换”电路&#xff0c;理解后令人心情愉快。电路设计其实也可以很有趣。 先说一说这个电路的用途&#xff1a;当两个MCU在不同的工作电压下工作&a…

Java 基础知识——part 1

1.目前Java平台有三种版本&#xff1a; Java SE&#xff1a;用于开发桌面应用程序 Java EE&#xff1a;用于编写企业级应用程序 Java ME&#xff1a;用于开发设备应用程序 2.Applet可嵌入Web文档的一种小型程序&#xff0c;因网络传输速度关系都很短小 3.Appilication&…

【云计算】虚拟化技术

目录 1. 虚拟化技术在云计算中的那些地方发挥了关键作用&#xff1f; 2. 比较VMare&#xff0c;Xen等虚拟化产品的关键技术&#xff0c;以及对云计算技术提供的支持&#xff1f; 3. 服务器虚拟化&#xff0c;存储虚拟化和网络虚拟化都有哪些实现方式&#xff1f; 4. 讨论桌面…

力扣题目 - 2931.购买物品的最大开销

题目 还需要你前往力扣官网查看详细的题目要求 地址 思路 这边需要你去力扣官网详细查看题目看了题目提供的示例 已经有了解法, 先把values转成1维数组,排序之后进行累加即可 代码 var maxSpending function (values) {let list values.flat();list.sort((a, b) > a - …

嵌入式驱动开发详解6(RTC)

文章目录 前言RTC简介RTC驱动分析RTC驱动框架RTC驱动实现 RTC应用后续 前言 实时时钟是很常用的一个外设&#xff0c;通过实时时钟我们就可以知道年、月、日和时间等信息。 因此在需要记录时间的场合就需要实时时钟&#xff0c;可以使用专用的实时时钟芯片来完成此功能&#x…

单片机:实现跑马灯(附带源码)

单片机实现跑马灯 跑马灯&#xff08;也称作流水灯&#xff09;是一种常见的电子效果&#xff0c;通过依次点亮和熄灭多个LED灯&#xff0c;模拟出一个灯光流动的效果。跑马灯常见于装饰性电子产品中&#xff0c;也是一种展示单片机控制多路输出的基础应用。 在本项目中&…