查找(考研数据结构)

news2025/1/18 7:34:43

一、二叉查找树(BST)

1、BST的性质

【2011统考】下列关键字序列,不可能构成某二叉排序树中一条查找路径的是(A)

A、95,22,91,24,94,71         B、92,20,91,34,88,35

C、21,89,77,29,36,38        D、12,25,71,68,33,34

解析:

(95 22):22~95

(95 22 91):22~91

(95 22 91 24):24~91

(95 22 91 24 94):94不在范围内则不可能构成查找路径

tips:在区间内则逐步缩短区间范围,不在则非法。

【2018统考】已知二叉排序树如下图,元素之间应满足的大小关系(C)

A、 x1 < x2 < x3       B、x1 < x4 < x5        C、x3 < x5 < x4        D、 x4 < x3 <x5

解析:右子树大于左子树,从图中看出 x1 < x3 < x5 < x4 < x2

2、BST的删除

【2013统考】在任意一颗非空二叉排序树T1中,删除某结点v之后形成二叉排序树T2,再将v插入T2形成二叉排序树T3.下列关于T1与T3的叙述中,正确的是(C)

(1)若v是T1的叶结点,则T1与T3不同

(2)若v是T1的叶结点,则T1与T3相同

(3)若v不是T1的叶结点,则T1与T3不同

(4)若v不是T1的叶结点,则T1与T3相同

A、(1)(3)        ​​​​​​​B、(1)(4)        C、(2)(3)        D、(2)(4)

 解析:

BST的删除若v是叶子结点,直接删;

若只有一棵子树,直接删除,用该子树代替v原来的位置;

若有两棵子树,则找到v的直接后继(或直接前驱),用该后继或前驱代替v,转换为删除该直接后继或前驱。

所以,叶子结点的删除不回改变原来树的结构,而非叶子结点会改变,而再插入则只会插入在叶子结点的位置,所以在非叶结点出删除插入必定会结构改变。

二、平衡二叉树

1、AVL的插入(旋转)

【2013统考】若将关键字1、2、3、4、5、6、7依次插入初始为空的平衡二叉树T,则T中平衡因子为0的分支结点的个数是(D)

A、0        B、1        C、2        D、3

解析:

AVL插入:

 

RR:A的右孩子的右子树插入       RL:A的右孩子的左子树插入

LL:A的左孩子的左子树插入        LR:A的左孩子的右子树插入

从失衡点的孩子开始旋转

三、顺序查找和折半查找

1、折半查找判定树

解析: 折半查找只能采取一种取整方式,向上取整或向下取整。

按1、2、3、4、5、6、7……填入A、B、C、D

2、折半查找算法

【2013统考】设包含4个数据元素的集合S={'do','for','repeat','while'},各元素的查找概率依次为p1=0.35,p2=0.15,p3 = 0.15 , p4 = 0.35。将S保存在一个长度为4的顺序表中,采用折半查找法,查找成功时的平均查找长度为2.2

1)若采用顺序存储结构保存S,且要求平均查找长度更短,则元素应如何排列?应使用何种查找方法?查找成功时平均查找长度是多少?

2)若采用链式结构保存S,且要求平均查找长度更短,则元素应如何排列?应使用何种查找方法?查找成功时的平均查找长度是多少?

1)按查找概率从大到小排序,顺序查找,ASL = 0.35 * 1 + 0.35  * 2+ 0.15 * 3  + 0.15 * 4 = 2.1

2)按照二叉排序树的方式(二叉链表)排序 或 采用顺序查找

采用链式存储只能采用顺序查找,当基本有序时,顺序查找可能会优于折半查找

四、B树和B+树

【2009统考】下列叙述中,不符合m阶B树定义要求的是(D)

A、根结点最多含有m棵子树                         B、所有叶结点都在同一层上

C、各结点内关键字均升序或降序排列        D、叶结点之间通过指针链接

解析:

m阶B树性质:

1、每个结点至多含有m棵子树,即m-1个关键字

2、若根结点不是叶结点,则至少含有两颗子树

3、除根结点外所有非叶结点至少含有{\left \lceil m/ 2 \right \rceil}棵子树,即至少含有\left \lceil m / 2 \right \rceil -1个关键字

通过指针链接的是B+树

【2014统考】在一棵有15个关键字的4阶B树中,含关键字的结点个数最多是(D)

A、5                B、6                C、10                D、15 

解析:

4阶B树最多含有每个结点至少1个关键字,所以共15个关键字,15 / 1 = 15个关键字

【2016统考】B+树不同于B树的特点之一是(A)

A、能支持顺序查找                         B、结点中含有关键字

C、根结点至少有两个分支              D、所有叶结点都在同一层上

 解析:

B+树有两个头结点,一个指向最小的关键字,另一个指向根结点。

B树只有指向根结点的头结点。

从最小关键字开始,就可以实现顺序查找。

顺序查找:按照原序列的顺序查找

【2018统考】高度为5的3阶B树含有的关键字个数至少是(B)

A、15        ​​​​​​​B、31        C、62        D、242

解析:

3阶,每个结点关键字个数至少为1个,根结点的子树个数至少为2棵且每个结点关键字至少一个。

所以,此时关键字数 = 结点数,每棵子树有两个结点。类似于一颗满二叉树,一颗高度为n的满二叉树的结点数2^{n} - 1。所以等于31.

【2022统考】在下图所示的5阶B树T中,删除关键字260之后需要进行必要的调整,得到新的B树T1.下列选项中,不可能是T1根结点中关键字序列的是(D)

A、60,90,280                           B、60,90,350        

C、60,85,110,350                D、60,90,110,350        

解析:

*5阶B树至少\left \lceil 5 / 2 \right \rceil - 1 = 2个关键字,删除260后,根结点仍然满足最小2个关键字。

需要调整结点的关键字。

*​​​​​​​若将110移到根结点,则第三个结点只有1个关键字,不满足条件,所以D不可能。

B树的删除:

*删除后关键字的结点不能关键字数量不能小于{\left \lceil m/ 2 \right \rceil} -1,若小于则要从兄弟借,若不够借则合并双亲结点和左(右)兄弟结点。

五、散列表

【2018统考】现有长度为7、初始为空对散列表HT,散列函数H(k) = k % 7,用线性探测再散列法解决冲突。将关键字22,43,15依次插入HT后,查找成功的平均查找长度是(C)

A、1.5        B、1.6        C、2        D、3

解析:

22 % 7 = 1

43 % 7 = 1 冲突,改为2

15 % 7 = 1 冲突,改为2冲突,改为3

查找22时,H(22) = 22 % 7 = 1,1次成功;查找43,H(43) = 43 % 7 = 1,+1 = 2,查找成功,两次;查找15,H(15) = 15 % 7 = 1,而15在3处,则需要查找3次。

ASL:(1 + 2 + 3) /  3 = 2

线性探测法:若有冲突则往后加一个单元探测,直到该存储单元为空。

【2019统考】现有长度为11且初始为空的散列表HT,散列函数是H(key) = key % 7,采用线性探测法。将关键字序列87,40,30,6,11,22,98,20依次插入HT后,HT查找失败的平均查找长度是(C)

A、4        B、5.25        C、6        D、6.29

解析:插入87,87 % 7 = 3;插入40,40 % 7 = 5 ;插入30,30 % 7 = 2;插入6,6 % 7 = 6;插入11,11 % 7 = 4;插入22,22 % 7 = 1;插入98,98 % 7 = 0 ;插入20,20 % 7 = 6,7合法

012345678910
982230871140620

关键字为0,需要查找9次,从0号到8号;关键字为1,需要查找8次,从1~8……

ASL(失败) = (9 + 8 + 7 + 6 + 5 + 4+ 3 )/  7  = 6

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

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

相关文章

Uncaught ReferenceError: process is not defined

最近在搞老项目升级,将Vue2.6.11里的vuecli5.0.8升级到vite最新版本4.4.9&#xff0c;中间遇到不少问题&#xff0c;有机会以后做记录。 遇到问题 把所有的工作就搞好项目也成功的跑起来&#xff0c;页面一片空白。打开控制台 Uncaught ReferenceError: process is not defi…

Git小白入门——上手实操之创建仓库和代码提交

版本库 什么是版本库呢&#xff1f;版本库又名仓库&#xff0c;英文名repository&#xff0c;简单理解成一个目录&#xff0c;目录里的所有文件都可以被Git管理&#xff0c;每个文件的修改、删除&#xff0c;Git都能跟踪&#xff0c;以便任何时刻都可以追踪历史&#xff0c;或…

MySQL索引和查询优化

文章目录 1.Mysql索引2. b- tree 与 b tree3.覆盖索引和回表查询4.查询优化1.Explain 5.优化实战举例**用户搜索****订单查询****分页查询** 1.Mysql索引 MySQL索引是一种用于提高数据库查询效率的数据结构。它可以加快数据检索的速度&#xff0c;减少查询所需的IO操作和计算…

ChatGPT完成Excel公式计算业绩提成

公司业绩提成是一种激励措施,通常是指根据公司的业绩表现,对员工的绩效进行评估,然后给予相应的奖励或提成。 这种激励措施可以鼓励员工努力工作,提高团队的竞争力和生产效率,从而推动公司的业绩增长。 不过具体的提成计算方式和金额是根据公司政策和个人表现而定的。 例如…

线性代数的学习和整理18:矩阵的秩的各种定理, 秩和维度(未完成)

目录 1 矩阵的秩 矩阵的秩 2 求秩的方法 矩阵的维度秩 矩阵的维度 向量的模&#xff0c;矩阵的模-没有把&#xff0c;难道是面积&#xff1f; 矩阵的平直概念 5 矩阵的初等变换&#xff08;矩阵等价概念的引出&#xff09; 1 为什么要引入矩阵的“秩” 这个概念&#x…

大数据组件-Flume集群环境搭建

&#x1f947;&#x1f947;【大数据学习记录篇】-持续更新中~&#x1f947;&#x1f947; 个人主页&#xff1a;beixi 本文章收录于专栏&#xff08;点击传送&#xff09;&#xff1a;【大数据学习】 &#x1f493;&#x1f493;持续更新中&#xff0c;感谢各位前辈朋友们支持…

#include <graphics.h> #include <conio.h> #include<stdlib.h>无法打开源文件解决方案

一、问题描述 学习数据结构链表的过程中&#xff0c;在编写漫天星星闪烁的代码时&#xff0c;遇到了如下图所示的报错&#xff0c;#include <graphics.h> 、 #include <conio.h> 等无法打开源文件。 并且主程序中initgraph(初始化画布)、setfillcolor&#xff08;…

【OpenCV入门】第五部分——图像运算

文章结构 掩模图像的加法运算图像的位运算按位与运算按位或运算按位取反运算按位异或运算图像位运算的运用 合并图像加权和覆盖 掩模 当计算机处理图像时&#xff0c;有些内容需要处理&#xff0c;有些内容不需要处理。能够覆盖原始图像&#xff0c;仅暴露原始图像“感兴趣区域…

【C++从0到王者】第二十五站:多继承的虚表

文章目录 前言一、多继承的虚函数表二、菱形继承与菱形虚拟继承的虚函数表1.菱形继承2.菱形虚拟继承的虚函数表 三、抽象类1.抽象类的概念2.接口继承与实现继承 总结 前言 其实关于单继承的虚函数表我们在上一篇文章中已经说过了&#xff0c;就是派生类中的虚表相当于拷贝了一…

注意!CSPM换证工作于9月6日起转为线上开展!

之前胖圆给大家介绍了CSPM的相关信息&#xff0c;CSPM换证也将于9月6日起转成线上申请&#xff01;不用再快递资料了&#xff01;更加方便快捷&#xff01; CSPM-3考试也将于10月28日进行&#xff01;已经通过PMP的小伙伴可以考CSPM-3&#xff0c;CSPM-4了&#xff01;具体考试…

虚拟机安装aix 7.2

虚拟机安装aix 7.2 环境安装参考 环境 kali 2023 aix7.2镜像 https://archive.org/details/aix_7200-04-02-2027_072020安装 apt install qemu-system qemu-img create -f qcow2 aix-hdd.qcow2 20G qemu-system-ppc64 -cpu POWER8 -machine pseries -m 4G -serial mon:stdio…

什么是认证标志证书(VMC证书)?

认证标志证书&#xff08;VMC证书&#xff09;是电子邮件营销和安全的重要组成部分&#xff0c;Gmail、Yahoo Mail 、Fastmail 以及Apple Mail等知名邮箱供应商均支持认证标志证书&#xff08;以下简称VMC证书&#xff09;。那么什么是VMC证书呢&#xff1f;VMC证书有什么作用呢…

Navicat15天试用期过期解决办法

如果你是windows电脑&#xff0c;发现过期了先把Nvaicat关掉&#xff0c;按照以下步骤可以恢复到15天试用。 1.注册表输入regedit winR打开注册表 2.搜索输入HKEY_CURRENT_USER\Software\PremiumSoft\Navicat 删除Registration15XCS和Update这两个文件夹。 3.搜索HKEY_CURRE…

数据并行 - DP/DDP/ZeRO

数据并行DP 数据并行的核心思想是&#xff1a;在各个GPU上都拷贝一份完整模型&#xff0c;各自吃一份数据&#xff0c;算一份梯度&#xff0c;最后对梯度进行累加来更新整体模型。理念不复杂&#xff0c;但到了大模型场景&#xff0c;巨大的存储和GPU间的通讯量&#xff0c;就…

【OpenCV实战】4.OpenCV 五种滤波使用实战(均值、盒状、中值、高斯、双边)

OpenCV 五种滤波使用实战(均值、盒状、中值、高斯、双边&#xff09; 〇、Coding实战内容一、滤波、核和卷积1.1 滤波1.2 核 & 滤波器1.3 公式1.4 例子 二、图片边界填充实战2.1 解决问题2.2 相关OpenCV函数2.3 Code 三. 均值滤波实战3.1 理论3.2 Blur3.3 Code 四. 盒状滤波…

集成跨境电商ERP(积加、易仓、马帮等)连接多个应用

场景描述&#xff1a; 基于跨境电商开放平台&#xff08;积加、易仓、马帮等&#xff09;能力&#xff0c;无代码集成跨境电商ERP与多个应用互通互连。通过Aboter可搭建业务自动化流程&#xff0c;实现多个应用之间的数据连接。 连接器&#xff1a; 积加ERP马帮ERP易仓ERP……

Visual Studio Code 终端配置使用 MySQL

Visual Studio Code 终端配置使用 MySQL 找到 MySQL 的 bin 目录 在导航栏中搜索–》服务 找到MySQL–>双击 在终端切换上面找到的bin目录下输入指令 终端为Git Bash 输入命令 ./mysql -u root -p 接着输入密码&#xff0c;成功在终端使用 MySQL 数据库。

【LLM】快速开始 LangChain

theme: orange LangChain是一个软件开发工具包&#xff0c;它通过将组件链接在一起并公开简单统一的API&#xff0c;简化了大型语言模型和应用程序的集成。本篇文章将会简要介绍&#xff0c;让各位开发者对其有一个整体的认识。 前言 如果你是一名软件开发人员&#xff0c;努力…

chatGPT讲师AIGC讲师叶梓:大模型这么火,我们在使用时应该关注些什么?-5

以下为叶老师讲义分享&#xff1a; P20-P24 顺便看看某大模型觉得“两头蛇”长啥样&#xff1f; “羊驼-2”的神逻辑 欣赏一下GPT-4给出的满分答案 提示工程的模式 1、说明模式下&#xff0c;您为 ChatGPT 输入内容来解释或阐明一个概念或理论。 它的主要功能是定义各种概念。…

设计封面有诀窍,这5个实用软件让你快人一步

每位作者和出版商都梦想着为他们的作品设计一个引人注目的封面。这样一来&#xff0c;潜在的读者才会被吸引&#xff0c;愿意拿起这本书来阅读&#xff0c;从而提高书籍的销售量。这正是封面设计软件发挥作用的地方。专业的封面设计软件能够添加前沿的效果&#xff0c;以呈现书…