数据结构与算法分析模拟试题及答案5
模拟试题(五)
一、单项选择题(每小题 2 分,共20分)
 (1)队列的特点是(   )。
 A)先进后出 B)先进先出 
 C)任意位置进出 D)前面都不正确
 (2)有n个记录的文件,如关键字位数为d,基数为r,则基数排序共要进行(   )遍分配与收集。
 A)n B)d C)r D)n - d
 (3)在二叉树结点的先序序列、中序序列和后序序列中,所有叶子结点的先后顺序(   )。
 A)都不相同 B)完全相同
 C)先序和中序相同,而与后序不同 D)中序和后序相同,而与先序不同
 (4)限定在一端加入和删除元素的线性表称为(   )。
 A)双向链表 B)单向链表 C)栈 D)队列
 (5)若数据元素序列11,12,13,7,8,9,23,4,5是采用下列排序方法之一得到的第二趟排序后的结果,则该排序算法只能是(   )。
 A)起泡排序 B)插入排序 C)选择排序 D)二路归并排序
 (6)设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树上的结点个数为n,森林F中第一棵树的结点个数是(   )。
 A)m-n-1 B)n+1 C)m-n+1 D)m-n
 (7)对于具有n个顶点的强连有向图,其弧条数的最小值为(   )。
 A)n+1 B)n C)n-1 D)n-2
 (8)下面关于广义表的叙述中,不正确的是(   )。
 A)广义表可以是一个多层次的结构 B)广义表至少有一个元素
 C)广义表可以被其他广义表所共享 D)广义表可以是一个递归表
 (9)设二叉树根结点的层次为0,一棵深度(高度)为k的满二叉树和同样深度完全二叉树各有f个结点和c个结点,下列关系式不正确的是(   )。
 A)f>=c B)c>f C)f=2k+1-1 D)c>2k-1
 (10)设一棵二叉树中没有度为1的结点,已知叶子结点数为n,此树的结点数为(   )。
 A)2n+2 B)2n+1 C)2n D)2n-1
 二、(每小题4分,共8分)
 写出下列中缀表达式的后缀形式:
 (1)3X/(Y-2)+1
 (2)2+X*(Y+3)
 三、(每小题4分,共8分)
 试对如下图中的二叉树画出其:
 
 (1)顺序存储表示;
 (2)二叉链表存储表示的示意图。
 四、(每小题4分,共8分)
 判断以下序列是否是小根堆? 如果不是,将它调整为小根堆。
 (1){ 12, 70, 33, 65, 24, 56, 48, 92, 86, 33 }
 (2){ 05, 23, 20, 28, 40, 38, 29, 61, 35, 76, 47, 100 }
 五、(本题8分)
 已知一个图的顶点集V和边集E分别为:
 V={1,2,3,4,5,6,7};
 E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25};
 按照普里姆算法从顶点1出发得到最小生成树,试写出在最小生成树中依次得到的各条边。
 六、(每小题2分,共8分)
 设有12个数据25,40,33,47,12,66,72,87,94,22,5,58,它们存储在散列表中,利用线性探测再散列处理冲突,取散列函数为H(key)=key % 13。
 (1)顺次将各个数据散列到表中,并同时列出各元素的比较次数。
 (2)计算查找成功的平均查找次数。
 七、(第1小题2分,第2、3小题每小题3分,本题8分)
 对于如下图所示的图G,邻接点按从小到大的次序。
 
 (1)图G有几个连通分量?
 (2)按深度优先搜索所得的树是什么?
 (3)按深度优先搜索所得的顶点序列是什么?
 八、(本题8分)
 已知一棵树边为:
 {<I,M>,<I,N>,<E,I>,<B,E>,<B,D>,<C,B>,<G,L>,<G,K>,<A,G>,<A,F>,<A,H>,<C,A>}
 试画出这棵树,并回答下列问题:
 (1)哪个是根结点?
 (2)哪些是叶子结点?
 (3)树的深度是多少?
 九、(本题9分)
 给出一组关键字T=(12,2,16,30,8,28,4,10,20,6,18)。写出用下列算法从小到大排序时第一趟结束时的序列。
 (1)希尔排序(第一趟排序的增量为5)
 (2)快速排序(选第一个记录为枢轴)
 十、(本题15分)
 编写复制一棵二叉树的非递归算法。
模拟试题(五)参考答案
一、单项选择题(每小题 2 分,共20分)
 (1)B (2)B (3)B (4)C (5)B
 (6)D (7)B (8)B (9)B (10)D
 二、(每小题4分,共8分)
 (1)3 X * Y 2 - / 1 +
 (2)2 X Y 3 + * +
 三、(每小题4分,共8分)
 (1)二叉树的顺序存储表示如下所示:
 
 (2)二叉树的二叉链表存储表示的示意图如下图所示:
 
 四、(每小题4分,共8分)
 (1)不是小根堆。调整为:{12,24,33,65,33,56,48,92,86,70}
 (2)是小根堆。
 五、(本题8分)
 普里姆算法从顶点1出发得到最小生成树为:
 (1,2)3, (1,3)5, (1,4)8, (4,6)4, (2,5)10, (4,7)20
 六、(每小题2分,共8分)
 (1)取散列函数为H(key)=key % 13。
 (2)顺次将各个数据散列到表中,并同时列出各元素的比较次数如下表所示。
 
 (4)计算查找成功的平均查找次数=(1×7+2×3+3×2)/12=19/12。
 七、(第1小题2分,第2、3小题每小题3分,本题8分)
 (1)图G有2个连通分量。
 (2)按深度优先搜索所得的树如下图所示:
 
 (3)按深度优先搜索所得的顶点序列:ABHFGCDE
 八、(本题8分)
 (1)树,如下图所示:
 
 (2)C是根结点。
 (3)F,K,L,H,D,M,N是叶子结点。
 (3)深度是5。
 九、(本题9分)
 (1)(12,2,10,20,6,18,4,16,30,8,28)
 (2)(6,2,10,4,8,12,28,30,20,16,18)
 十、(本题15分)
 将算法实现函数声明为二叉树类的友元函数,可采用层次遍历的方式进行复制,将已复制的结点进入一个队列中即可。
 具体算法实现如下:
// 文件路径名:exam5\alg.h
 template 
 void CopyBitree(BinaryTree *fromBtPtr, BinaryTree *&toBtPtr)
 // 操作结果: 复制二叉树fromBt到toBt的非递归算法
 {
 if (toBtPtr != NULL) delete toBtPtr; // 释放toBtPtr
 if (fromBtPtr->Empty())
 { // 空二叉树
 toBtPtr = NULL; // 空二叉树
 }
 else
 { // 非空二叉树
 LinkQueue<BinTreeNode *> fromQ, toQ; // 队列
 BinTreeNode *fromPtr, *toPtr, *fromRoot, *toRoot;
 fromRoot =(BinTreeNode *) fromBtPtr->GetRoot(); // 取出fromBtPtr的根
 toRoot = new BinTreeNode(fromRoot->data); // 复制根结点
 fromQ.InQueue(fromRoot); toQ.InQueue(toRoot); // 入队
 while (!fromQ.Empty())
 { // fromQ非空
 fromQ.OutQueue(fromPtr); // 出队
 toQ.OutQueue(toPtr); // 出队
 if (fromPtr->leftChild != NULL)
 { // 左子树非空
 toPtr->leftChild = new BinTreeNode(fromPtr->leftChild->data); 
 // 复制fromPtr左孩子
 fromQ.InQueue(fromPtr->leftChild); toQ.InQueue(toPtr->leftChild); // 入队
 }
 if (fromPtr->rightChild != NULL)
 { // 右子树非空 
 toPtr->rightChild = new BinTreeNode(fromPtr->rightChild->data);
 // 复制fromPtr左孩子
 fromQ.InQueue(fromPtr->rightChild); toQ.InQueue(toPtr->rightChild); // 入队
 }
 }
 toBtPtr = new BinaryTree(toRoot); // 生成toBtPtr
 }
 }
相关文章:
 
数据结构与算法分析模拟试题及答案5
模拟试题(五) 一、单项选择题(每小题 2 分,共20分) (1)队列的特点是( )。 A)先进后出 B)先进先出 C)任意位置进出 D࿰…...
 
.NET 9.0 中 System.Text.Json 的全面使用指南
以下是一些 System.Text.Json 在 .NET 9.0 中的使用方式,包括序列化、反序列化、配置选项等,并附上输出结果。 基本序列化和反序列化 using System; using System.Text.Json; public class Program {public class Person{public string Name { get; se…...
 
Python自动检测requests所获得html文档的编码
使用chardet库自动检测requests所获得html文档的编码 使用requests和BeautifulSoup库获取某个页面带来的乱码问题 使用requests配合BeautifulSoup库,可以轻松地从网页中提取数据。但是,当网页返回的编码格式与Python默认的编码格式不一致时,…...
 
11.12机器学习_特征工程
四 特征工程 1 特征工程概念 特征工程:就是对特征进行相关的处理 一般使用pandas来进行数据清洗和数据处理、使用sklearn来进行特征工程 特征工程是将任意数据(如文本或图像)转换为可用于机器学习的数字特征,比如:字典特征提取(特征离散化)、文本特征提取、图像特征提取。 …...
 
RAG经验论文《FACTS About Building Retrieval Augmented Generation-based Chatbots》笔记
《FACTS About Building Retrieval Augmented Generation-based Chatbots》是2024年7月英伟达的团队发表的基于RAG的聊天机器人构建的文章。 这篇论文在待读列表很长时间了,一直没有读,看题目以为FACTS是总结的一些事实经验,阅读过才发现FAC…...
 
【配置后的基本使用】CMake基础知识
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀各种软件安装与配置_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1.…...
 
ollama+springboot ai+vue+elementUI整合
1. 下载安装ollama (1) 官网下载地址:https://github.com/ollama/ollama 这里以window版本为主,下载链接为:https://ollama.com/download/OllamaSetup.exe。 安装完毕后,桌面小图标有一个小图标,表示已安装成功&…...
【项目开发】理解SSL延迟:为何HTTPS比HTTP慢?
未经许可,不得转载。 文章目录 前言HTTP与HTTPS的耗时差异TCP握手HTTPS的额外步骤:SSL握手使用curl测量SSL延迟性能与安全的权衡前言 在互联网发展的早期阶段,Netscape公司设计了SSL(Secure Sockets Layer)协议,为网络通信提供加密和安全性。有人曾提出一个大胆的设想:…...
 
2.STM32之通信接口《精讲》之USART通信
有关通信详解进我主页观看其他文章!【免费】SPIIICUARTRS232/485-详细版_UART、IIC、SPI资源-CSDN文库 通过以上可以看出。根据电频标准,可以分为TTL电平,RS232电平,RS485电平,这些本质上都属于串口通信。有区别的仅是…...
Bootstrap和jQuery开发案例
目录 1. Bootstrap和jQuery简介及优势2. Bootstrap布局与组件示例:创建一个响应式的表单界面 3. jQuery核心操作与事件处理示例:使用jQuery为表单添加交互 4. Python后端实现及案例代码案例 1:用户登录系统Flask后端代码前端代码 5. 设计模式…...
 
Qt 之 qwt和QCustomplot对比
QWT(Qt Widgets for Technical Applications)和 QCustomPlot 都是用于在 Qt 应用程序中绘制图形和图表的第三方库。它们各有优缺点,适用于不同的场景。 以下是 QWT 和 QCustomPlot 的对比分析: 1. 功能丰富度 QWT 功能丰富&a…...
 
【STM32】MPU6050简介
文章目录 MPU6050简介MPU6050关键块带有16位ADC和信号调理的三轴MEMS陀螺仪具有16位ADC和信号调理的三轴MEMS加速度计I2C串行通信接口 MPU6050对应的数据手册:MPU6050 陀螺仪加速度计 链接: https://pan.baidu.com/s/13nwEhGvsfxx0euR2hMHsyw?pwdv2i6 提取码: v2i6…...
Oracle 单机及 RAC 环境 归档模式及路径修改
Oracle 数据库的使用过程中经常会根据需求的不同而调整归档模式,也经常会修改归档文件存放路径。 下面分别演示单机及 RAC 环境下修改归档模式及路径的操作步骤。 一、单机环境 1.查询当前归档模式及路径 SQL> archive log list Database log mode …...
 
抽象java入门1.5.3.1——类的进阶
前言:在研究神技代码Hello word的时候,发现了一个重大公式bug,在代码溯源中,我发现了一个奇怪的东西,就是OUT不是类中类(不是常规类的写法) 内容总结: 代码运行的顺序复习 正片开始…...
 
python——模块 迭代器 正则
一、python模块 先创建一个 .py 文件,这个文件就称之为 一个模块 Module。 使用模块的优点: 模块化编程,多文件编程 1.2 模块的使用 1.2.1 import语句 想要B.py文件中,使用A.py文件,只需要在B.py文件中使用关键字…...
 
QT仿QQ聊天项目,第三节,实现聊天界面
一,界面控件示意图 界面主要由按钮QPushButton,标签QLabel,列表QListWidget 要注意的是QListWidget既是实现好友列表的控件,也是实现聊天气泡的控件 二,控件样式 QPushButton#btn_name {border:none;}QPushButton#btn_close {border:1px;bac…...
Linux-何为CentOS
今年公司做的 POC 项目中,越来越多地听到客户开始或已经将系统迁移到麒麟、统信、openEuler,但还是有很多客户在用CentOS 7,或者和CentOS 7兼容的其他Linux。今天把CentOS 7相关概念统一整理下供后续参考使用 何为CentOS CentOS — Communit…...
C++中的 std::optional
std::optional<T>是 C17 中的一个标准库组件,optional <T>对象默认是空的,也就是处于无效状态,给它赋值后因为里面有了元素,就变成了有效状态。 1.引入背景 c函数常用返回值表示函数是否执行成功。如返回nullptr表示…...
 
猫狗识别之BUG汇总
一、github登不上去问题 下载watt toolkit 下载地址:https://steampp.net/ 可以下载后加速,访问github 二、猫狗总体参考核心 B哥的博客 https://github.com/bubbliiiing/classification-keras?tabreadme-ov-file 三、CSDN很多会员才能阅读问题 根据…...
 
【论文复现】自动化细胞核分割与特征分析
📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀自动化细胞核分割与特征分析 引言1. 效果展示2. HoverNet概述3. HoverNet原理分析整体网络框架实例分割原理 4. HoverNet评估结果5. 复现过程…...
 
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
 
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
 
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
 
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
 
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
 
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
 
VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
