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

23.[2010统考真题]若元素 a,b,c,d,e,f 依次进栈,允许进栈、退栈操作交替进行,但不允许连续3次进行退栈操作,不可能得到的出栈序列是(D)。

A.dcebfa        B.cbdaef        C.bcaefd        D.afedcb

解析:直接看D选项,a出栈之后就是f出栈,所以要让b,c,d,e,f依次进栈,而这时候需要连续退栈5次才能才能输出b,显然D错。

16.【2010统考真题】某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作。若元素a,b,c,d,e依次入此队列后再进行出队操作,则不可能得到的出队序列是(D)。

A. b,a,c,d,e        B. d,b,a,c,e        C. d,b,c,a,e        D. e,c,b,a,d

解析:a第一个进入,a指定是在中间,其他元素接着左右两边往里添就完事了。

A:

接着

b往左进------ba

c往右进------bac

d往右进------bacd

e往右进------bacde,                A正确。

B:

b往左进------ba

c往右进------bac

d往左进------dbac

e往右进------dbace,                 B正确

C:

a,b相连进去的队列,a和b应该挨着的。C不可能形成。

D

b往左进------ba

c往左进------cba

d往右进------cbad

e往左进------ecbad,                D正确   

28.[2010 统考真题]下列线索二叉树中(用虚线表示线索),符合后序线索树定义的是(D)。

解析

先写出这个二叉树的后序序列是:dbca

d没有前驱,d前面应该接个NULL,排除BC,答案在AD当中,再看一下d的后继是b,符合选项的只有D,选D。

18.【2010统考真题】在下图所示的平衡二叉树中插入关键字48后得到一棵新平衡二叉树,在新平衡二叉树中,关键字37所在结点的左、右子结点中保存的关键字分别是(C)。

A.13,48        B.24,48        C.24,53        D.24,90

解析:

画出插入关键字48后的新二叉树:

,很显然左子树高度是1,右子树高度是3,高度相差2,这已经不是平衡二叉树了,我们要把它变成新的平衡二叉树,这里有官方做法和非官方两种做法。

非官方做法

找到关键字中的中间值:37。将37作为根结点,24比37小作为左节点,53比37大作为右节点。13和90还是按照原来的位置放,13放在24的左子树上,90放在53的右子树上,再看48比37大,比53小,放在53的左子树上。

画出来的二叉树如下:

官方做法

先判断是什么型的不平衡。48是在右子树的左子树上,所以是RL型。

第一步,把它变成RR型。给90施加一个向下的力,进行右旋。

右旋之后变成,然后把48挂载上去,再进行左旋再进行左旋,得到答案C。

7.【2010统考真题】在一棵度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶结点个数是(B)。

A.41        B.82        C.113        D.122        

解析:设n_{0}是度为0的结点个数,也就是叶子结点。

度为4的结点个数+度为3的结点个数+度为2的结点个数+度为1的结点个数+根结点=所有结点个数。

20+10+1+10+1= 20*4+10*3+1*2+10*1+n_{0}

算出n_{0}=82。

直接求解82

11.[2010 统考真题]n(n≥2)个权值均不相同的字符构成哈夫曼树,关于该树的叙述中,错误的是(A)。

A.该树一定是一棵完全二叉树

B.树中一定没有度为 1 的结点

C.树中两个权值最小的结点一定是兄弟结点

D.树中任一非叶结点的权值一定不小于下一层任一结点的权值

解析:

A:哈夫曼树可以是这个样子的:,但是完全二叉树是从左子树依次往右子树排的,不可能出现只有右子树没有左子树的情况。

因为哈夫曼树是每次找出两个最小的数,往上逐层塔上去的,结点的度要么是0要么是2,不难看出BCD是对的。

15.【2010统考真题】若无向图G=(V,E)中含有7个顶点,要保证图G在任何情况下都是连通的,则需要的边数最少是(B)。

A.6        B.15        C.16        D.21

解析:

有七个顶点,要想7个顶点都联通,我们只需要使6个顶点完全联通,然后接一条边连上最后一个顶点即可。

例如:要想A,B,C,D,E5个点都联通,只需要让A,B,C,D四个点都完全联通再接一条边与E联通即可。

结合上面的思想,我们来做这道题:

假设有:①②③④⑤⑥⑦这7个顶点。
把顶点⑦这个顶点拿出来放在一边,先算让①-⑥,6个顶点完全联通需要多少条边。

顶点①与顶点②-⑥进行连接有5条边,

顶点②与顶点③-⑥进行连接有4条边,因为顶点②和顶点①已经联通了,所以从顶点③开始连接。

顶点③与顶点④-⑥进行连接有3条边。

顶点④与顶点⑤-⑥进行连接有2条边。

顶点⑤与顶点⑥进行连接有1条边。

5+4+3+2+1=\frac{5\times (1+5)}{2}=15,使用多项式求和公式。

15+1=16,选B。

总结:要使n个顶点的无向图,在任何情况下都是联通的,则需要保证n-1个顶点完全联通,再加1条边。

\frac{(n-2)(n-2+1)}{2}+1=\frac{(n-2)(n-1)}{2}+1

17.【2010统考真题】对下图进行拓扑排序,可得不同拓扑序列的个数是(B)。

A.4         B.3        C.2        D.1

解析:拓扑排序是依次将入度为0的点输出出去,并把这个点相连的边去掉,再进入下一轮。

开始只有a的入度为0,从a开始。

①输出a,去掉与a相连的边。

拓扑序列:a

②这下入度为0的点是e和b了,这里有输出e和输出b两种选择,

假设走输出b这条路线:     

拓扑序列:ab                 

③入度为0的点为e和c,这里同样有两种选择,

以输出c为例:

拓扑序列:abced

以输出e为例:

拓扑序列:abecd

前面提到步骤2有两种选择回到步骤②,假设这时输出的是e:

那很明显,拓扑序列就是aebcd

综上所述,有3种拓扑序列。选B.

18.[2010 统考真题]已知一个长度为 16 的顺序表 L,其元素按关键字有序排列,若采用折半查找法查找一个 L 中不存在的元素,则关键字的比较次数最多是(B)。

A.4        B.5        C.6        D.7

解析

折半查找:指针low指向最小的元素,指针high指向最大的元素,指针mid指向下标等于[low+high]/2的元素,假如要查找的数是x,如果x比mid指向的数小,则指针high指向mid-1的元素,指针low不变。如果x比指针mid所指向的数大,则指针low指向mid+1的元素,指针high不变重新设置mid的指向,接着下一轮。。。

本题:题目要比较的次数最多就要一直查找一直折半,直到最后折半不了为止。

第一次比较:

mid = [0+15]/2 = 7,

7左边的数是7个,7右边的数是8个,要想比较次数最多,肯定走数多的一边,因为数越多折半能折半的次数越多,能比较的数也就越多。

第二次比较:

mid=[8+15]/2 = 11,

11左边的数(8-10)是3个,11右边的数(12-15)是4个,接走走右边。

第三次比较:

mid=[12+15]/2 = 13,

13左边的数(12)是1个,13右边的数(14-15)是2个,接走走右边。

第四次比较:

mid=[14+15]/2 = 14,

注意此时指针low也是14,还能再比较一次,接着走右边。

第五次比较:

low = high = 15 ;

mid =15,

那这是最后一个数了,比较失败。

一共5次。

其实我们可以用一种更直观的方式来看这个题:折半查找二叉树。

由题可知,这个树的结点的个数应该是16个。

假设这个树的高度是h,那它的h-1层一定是满的,h层可能满也可能不满。

根据这个结论,我们可以推出折半查找判定树的树高

,树高为5,第4层是满的。

,前四层的结点个数是:2^{4}-1=15个,所以插入最后一个。

这样来看树高是5,则最多比较5次,如图来看,从上到下一共可比较5次。

答案选B。

14.[2010 统考真题]采用递归方式对顺序表进行快速排序。下列关于递归次数的叙述中,正确的是()。

A.递归次数与初始数据的排列次序无关

B.每次划分后,先处理较长的分区可以减少递归次数

C.每次划分后,先处理较短的分区可以减少递归次数

D.递归次数与每次划分后得到的分区的处理顺序无关

13.【2010统考真题】对一组数据(2,12,16,88,5,10)进行排序,若前3趟排序结果如下:

第一趟排序结果:2,12,16,5,10,88

第二趟排序结果:2,12,5,10,16,88.

第三趟排序结果:2,5,10,12,16,88

A.冒泡排序        B.希尔排序        C.归并排序        D.基数排序

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

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

相关文章

VUE实现刻度尺进度条

一、如下图所示效果&#xff1a; 运行后入下图所示效果&#xff1a; 实现原理是用div画图并动态改变进度&#xff0c; 二、div源码 <div style"width: 100%;"><div class"sdg_title" style"height: 35px;"><!--对话组[{{ dialo…

用Python画一个五星红旗

#codingutf-8 import turtle import mathdef draw_polygon(aTurtle, size50, n3): 绘制正多边形args:aTurtle: turtle对象实例size: int类型&#xff0c;正多边形的边长n: int类型&#xff0c;是几边形 for i in range(n):aTurtle.forward(size)aTurtle.left(360.0/n)de…

Linux--守护进程与会话

进程组 概念 进程组就是一个或多个进程的集合。 一个进程组可以包含多个进程。 下面我们通过一句简单的命令行来展示&#xff1a; 为什么会有进程组&#xff1f; 批量操作&#xff1a;进程组允许将多个进程组织在一起&#xff0c;形成一个逻辑上的整体。当需要对多个进程…

下载Kafka 3.0.0教程

1、Kafka 3.0.0下载地址 Apache Kafka 2、往下拉&#xff0c;查找3.0.0版本点击下载

【C++前后缀分解 降维】2906. 构造乘积矩阵|2074

前后缀分解 C前后缀分解 LeetCode2906. 构造乘积矩阵 给你一个下标从 0 开始、大小为 n * m 的二维整数矩阵 grid &#xff0c;定义一个下标从 0 开始、大小为 n * m 的的二维矩阵 p。如果满足以下条件&#xff0c;则称 p 为 grid 的 乘积矩阵 &#xff1a; 对于每个元素 p[…

数据结构之‘栈’

文章目录 1.简介2. 栈的初始化和销毁3. 进栈和出栈3.1 进栈3.2 出栈3.3 栈的打印 1.简介 一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行&#xff08;数据插入和删除操作&#xff09;的一端称为栈顶&#xff0c;另一端称为栈底。压栈&#xf…

C语言之预处理详解(完结撒花)

目录 前言 一、预定义符号 二、#define 定义常量 三、#define定义宏 四、宏与函数的对比 五、#和## 运算符 六、命名约定 七、#undef 八、条件编译 九、头文件的包含 总结 前言 本文为我的C语言系列的最后一篇文章&#xff0c;主要讲述了#define定义和宏、#和##运算符、各种条件…

W25QXX系列Flash存储器模块驱动代码

目录 W25QXX简介 硬件电路 W25Q128框图 Flash操作注意事项 驱动代码 W25QXX.h W25QXX.c W25QXX简介 W25Qxx系列是一种低成本、小型化、使用简单的非易失性存储器&#xff0c;常应用于数据存储、字库存储、固件程序存储等场景 存储介质&#xff1a;Nor Flash&#xff0…

算法入门-贪心1

第八部分&#xff1a;贪心 409.最长回文串&#xff08;简单&#xff09; 给定一个包含大写字母和小写字母的字符串 s &#xff0c;返回通过这些字母构造成的最长的回文串 的长度。 在构造过程中&#xff0c;请注意 区分大小写 。比如 "Aa" 不能当做一个回文字符串…

如何通过 PhantomJS 模拟用户行为抓取动态网页内容

引言 随着网页技术的不断进步&#xff0c;JavaScript 动态加载内容已成为网站设计的新常态&#xff0c;这对传统的静态网页抓取方法提出了挑战。为了应对这一挑战&#xff0c;PhantomJS 作为一个无头浏览器&#xff0c;能够模拟用户行为并执行 JavaScript&#xff0c;成为了获…

Android RecycleView 深度解析与面试题梳理

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 引言 在 Android 开发中&#xff0c;列表和网格布局是非常常见的界面元素&#xff0c;它们用于展示大量数据集合。RecyclerView 是 Android 提…

小众语言ruby在苹果中的初步应用

前言 感觉Ruby在苹果系统中充当一种脚本语言来使用。 1、直接输入ruby没有反应 2、可显示结果的命令 ruby -e "puts Goodbye, cruel world!" 效果如下图&#xff1a; 说明苹果系统中ruby已经安装完毕&#xff0c;或者就是自带的。 3、编辑运行第一个ruby程序 输入…

nodejs+express+vue教辅课程辅助教学系统 43x2u前后端分离项目

目录 技术栈具体实现截图系统设计思路技术可行性nodejs类核心代码部分展示可行性论证研究方法解决的思路Express框架介绍源码获取/联系我 技术栈 该系统将采用B/S结构模式&#xff0c;开发软件有很多种可以用&#xff0c;本次开发用到的软件是vscode&#xff0c;用到的数据库是…

Linux常见查看文件命令

目录 一、cat 1.1. 查看文件内容 1.2. 创建文件 1.3. 追加内容到文件 1.4. 连接文件 1.5. 显示多个文件的内容 1.6. 使用管道 1.7. 查看文件的最后几行 1.8. 使用 -n 选项显示行号 1.9. 使用 -b 选项仅显示非空行的行号 二、tac 三、less 四、more 五、head 六、…

解决Gson将长数字( json字符串)转换为科学记数法格式

Gson&#xff08;又称Google Gson&#xff09;是Google公司发布的一个开放源代码的Java库&#xff0c;主要用途为序列化Java对象为JSON字符串&#xff0c;或反序列化JSON字符串成Java对象。 依赖 Gradle: dependencies {implementation com.google.code.gson:gson:2.11.0 }…

nginx基础篇(一)

文章目录 学习链接概图一、Nginx简介1.1 背景介绍名词解释 1.2 常见服务器对比IISTomcatApacheLighttpd其他的服务器 1.3 Nginx的优点(1)速度更快、并发更高(2)配置简单&#xff0c;扩展性强(3)高可靠性(4)热部署(5)成本低、BSD许可证 1.4 Nginx的功能特性及常用功能基本HTTP服…

内存压力测试工具的开发与实现

内存压力测试工具的开发与实现 一、工具设计概述二、工具实现1. 伪代码设计2. C代码实现三、工具使用与扩展四、结论在软件开发过程中,内存稳定性与可靠性是确保系统长期稳定运行的关键因素。为了验证系统在高负载下的内存表现,内存压力测试工具显得尤为重要。本文将基于C语言…

上市公司-客户ESG数据集(dta+xlsx+参考文献)(2009-2023年)

参考《经济问题》中李普玲&#xff08;2024&#xff09;的做法&#xff0c;将供应商与主要客户数据对应起来&#xff0c;并对上市公司及关联上市公司的ESG数据进行匹配&#xff0c;形成“供应商——客户ESG”的数据集&#xff0c;保留客户的销售占比 一、数据介绍 数据名称&am…

pdf文件怎么转换成ppt?介绍几种pdf转ppt的方法

pdf文件怎么转换成ppt&#xff1f;将pdf文件转换成ppt格式是一种常见且实用的需求&#xff0c;特别是在制作演示文稿和准备报告时。pdf格式因其文件内容的固定排版和高兼容性而广泛应用于文档的保存和分享。然而&#xff0c;在某些情况下&#xff0c;将pdf文件转换为ppt格式可以…

开源 AI 智能名片 S2B2C 商城小程序中的全渠道供应策略

摘要&#xff1a;本文深入探讨在开源 AI 智能名片 S2B2C 商城小程序的情境下&#xff0c;全渠道供应的运行机制。阐述各环节企业相互配合的重要性&#xff0c;重点分析零售企业在其中的关键作用&#xff0c;包括协调工作、信息传递、需求把握等方面&#xff0c;旨在实现高效的全…