C++、嵌入式软开之数据结构
总结:
1.二叉树搜索树是需要进行比较大小,满足传递性才可;
刷题总结:
1.(二叉树遍历)已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历是()
思路:已知中序以及后续遍历
(1)根据后序遍历找到根节点;
(2)查看中序遍历根节点左右子树;
(3)在后续遍历找到左右子树的根序列;
(4)根据左子树的后续根序列以及中根序列确定左子树;
(5)根据右子树的后续根序列以及中根序列建立右子树。
已知一棵二叉树的前根序序列和中根序序列,构造该二叉树的过程如下:
(1)根据前根序序列的第一个元素建立根结点;
(2)在中根序序列中找到该元素,确定根结点的左右子树的中根序序列;
(3)在前根序序列中确定左右子树的前根序序列;
(4)由左子树的前根序序列和中根序序列建立左子树;
(5)由右子树的前根序序列和中根序序列建立右子树。
2.(广度搜索、深度搜索)有关广度优先搜索(Breadth-first Search)和深度优先搜索(Depth-first Search),以下说法中正确的是:()
A.广度优先搜索和深度优先搜索都可以用于遍历一棵树。
解释:对一个图的遍历不管是BFS或DFS都可以。
B.在解决迷宫问题时,深度优先搜索总会比广度优先搜索更快地找到迷宫出口。
解释:在解决迷宫问题时,除了一些特殊迷宫,广度比深度能更快找到出口,只是消耗内存更大。
C.在解决最短路径问题时,Dijkstra算法(Dijkstra’s algorithm)本质上是一种考虑了边(Edge)的权重的深度优先搜索。
解释:Dijkstra算法是广度优先。
D.广度优先搜索需要在搜索的每一层保存该层的所有结点,这一操作只能用队列这种数据结构来完成。
解释:用数组也能实现。
3.(父节点求解)在堆排序算法中我们用一个数组A来模拟二叉树T,如果该A[0]存放的是T的根节点,那么A[K](K>0)(左节点)的父亲节点是()?(选项向下取整)
解释:孩子节点的序号/2 = 父亲节点的序号;看清起点,这题起点是0,故(K - 1)/2,如果起点是1,那么为K/2。
4.(数据存放)某一系统功能,需要一次性加载N(N在1000左右)个随机数 ,后续只对该集合进行遍历 .最宜采用哪种结构存放?
解释:随机数,未经排序,二叉树不适合;
需要遍历,hash表不适合;(hash表适合查询)
不强调数据之间的关系,图不适合;
随机数数据类型不一致,数组不适合。
综上所述,链表最适合。
(注:链表不适合随机访问,适合遍历)
5.集合中任何两个元素都可以比较大小,但比较不满足传递性,则以下说法正确的有( )
A.可以通过建立二叉搜索树索引使得在集合中查找元素的时间复杂度降到O(logN)B.可以进行快排,排序后使用二分查找可以使得在集合中查找元素的时间复杂度降到O(logN)C.可以通过B树索引使得在集合中查找元素的时间复杂度降到O(logN)D.可以通过hash索引使得在集合中查找元素的时间复杂度降到O(1)
解释:
ABC都需要比较大小的传递性,否则无法实现,而哈希所以可以认为是单纯的数值计算,并没有大小比较操作,故选D
6.(时间复杂度)在一般包含n个节点的二叉搜索树中查找的最差时间复杂度是?
解释:
等待解答ing
7.(哈曼树)下列选项给出的是从根分别到达两个叶结点路径上的权值序列,能属于同一棵哈夫曼树的是 () 。
解释:
参看:https://blog.csdn.net/u011240016/article/details/53083846https://blog.csdn.net/u011240016/article/details/53083846
8.(求解节点数)一棵完全二叉树第六层有9个叶结点(根为第一层),则结点个数最多有()
解释:这个题目第六层有9个叶结点,问最多有多少个结点,那我们可以想到可以有第7层,但是第7层少了18个结点,那么第六层就剩下9个叶子节点所以答案为:1+2+4+8+16+32+64-18=109.
第一层的i为0,第i层节点数为2^(i - 1)
9.广度和深度遍历是遍历算法,目的是遍历所有节点而不是获得最短路径,Dijkstra、A*等算法才是描述最短路径的方法
10.(B-树)在一个10阶的B-树上,每个树根结点中所含的关键字数目最多允许为( )个,最少允许为( )个。
解释:
关键字的个数n必须满足: [ceil(m / 2)-1]<= n <= m-1 (ceil为取上整)
11.(求分支节点)含有n个叶子结点的最优二叉树中共有()个分支结点。
解释:
二叉树具有以下性质:度为2的节点(双分支节点)数比度为0(叶子节点)数正好少1。而根据最优二叉树(哈夫曼树)的构造过程可知,最优二叉树中只有度为2和0的结点,因此,其节点总数为2n-1。
而其中叶子节点是n,则非叶子节点是2n-1-n=n-1。
-----------------插播--------------
针对最优二叉树(哈夫曼树)
1、叶子节点:最下面那一层的节点;
2、节点总数:2n - 1;
3、若叶子节点为n,那么非叶子节点数目就为2n - 1 - n;
4、树的度:结点的子树的个数称为度;
5、哈夫曼树不存在度为1的分支节点;
6、若初始森林中共有n棵二叉树,n个叶子的哈夫曼树要经过n-1次合并,产生n-1个新结点,最终求得的哈夫曼树共有2n-1个结点
-----------------------------------------------------------
12.(求度、节点)在一棵度为3的树中,度为3的节点个数为2,度为2的节点个数为1,则度为0的节点个数为()
解释:
既然是一颗树,那么总的节点数=总的边数+1
所以,设度为1的节点数为x,度为0的节点数为y
2+1+x+y = 3*2+2*1+1*x+0*y+1
解得 y=6
12-2(求度、节点)若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是( )。
解释:二叉树中,度为0的节点个数比度为2的节点个数多1个
13(求带权路径长度)判断下列说法是否正确:利用5,7,2,3,6,8, 9这几个值作为叶子结点的权,生成-棵哈夫曼树,该树的带权路径长度为123.()
注:因2+3=5,在原有数据中已有5,这儿单独给5*3;
例题:
14.(父节点、兄弟节点)若X 是后序线索二叉树中的叶结点,且 X 存在左兄弟结点 Y,则 X 的右线索指向的是( )。
解释:后序遍历:左、右、根
15.(求组合形态)具有3个结点的二叉树有几种形态?
解释:
这是组合计数问题,最常见的catalan数,C(n)=(1/(n+1))((2n)!/(n!n!))
C(3) = (23)!/(3!*3!)/(3+1)=5
3个节点详细如图:
16.(求树的关键字)在一棵高度为2 的 5 阶 B 树中, 所含关键字的个数最少是( )。
解释:
1.根节点至少有两个孩子节点,那么根节点的关键字至少为1;
2.第二层节点(至少2个),每个节点至少有ceil(m/2)=3个孩子节点,那么其关键字至少为2;
3.综上:高度为2的5阶B树,关键字个数至少为1+2+2=5;
17.(充要条件)在线索化二叉树中,节点t没有左子树的充要条件是()
解释:ltag和rtag分别代表左孩子和右孩子。 0有1无。
18.(空指针域数)一棵左右子树不空的二叉树在先序线索化后,其空指针域数为()。
解释:前序和后续线索化空指针域都是1,中序是2。
⭐⭐⭐⭐⭐19.(判断二叉树)下图所示的二叉树是()
解释:
A选项:二叉判定树必须得满足一个公式:具有n个结点的二叉树如果其深度为:(log2,n)+1那这颗树就是判定树,题目明显不是! B选项:二叉排序树有三个性质,都满足就是排序树!a.若左子树不空,则左子树结点值均限于它们根结点值;b:若右子树不空,则右子树上所有结点的值均大于它的根结点的值;c.左右子树也分别是二叉排序树!所以B对 C:二叉平衡树,它满足以下性质:它是一颗空树或左右子树的高度差的绝对值不超过1!题目中明显不满足!
⭐⭐⭐⭐⭐20.(数据结构分类)常见数据结构
线性数据结构(一一对应的关系) | 非线性数据结构(一对多或多对一) |
---|---|
数组、链表、栈、队列 | 堆、图、树、散列表(哈希表) |
相关文章:

3dsMax插件V-Ray渲染与合成学习课程 3ds Max: Rendering for Compositing in V-Ray Next
使用渲染元素,3ds Max的V-Ray Next对创建高质量合成所需的参数(如反射、阴影、遮罩等)提供了精细的控制。在本课程中,布莱恩布拉德利展示了如何在Photoshop和After Effects等应用程序中使用V-Ray Next为后期制作工作流专门创建渲染。探索渲染元素用户界面…

对找数程序的理解
经过几个小时的思考,总算是对老师出的这个程序题有了一定的了解。该C#程序是一个对数字进行查找的程序。程序清单如下: using System; using System.Collections.Generic; using System.Text; namespace FindTheNumber { class Program { s…

win10鼠标灵敏度怎么调_和平精英最稳压枪灵敏度怎么调教程,适合所有段位以及适合国际版PUBG手游压枪...
和平精英(原刺激战场)主播最稳压枪灵敏度怎么调?不妨看看花了五个小时调试的最稳和平精英压枪灵敏度吧。废话不多,上图按照调。保证你满意,你离主播只差点意识此和平精英压枪灵敏度适合所有段位 也适合PUBG(和平精英国际版)-------分割线---…

C++基本知识点集锦(2022秋招)
(1)构造函数是一种特殊的类成员函数,是当创建一个类的对象时,它被调用来对类的数据成员进行初始化和分配内存。(构造函数的命名必须和类名完全相同) (2)C的空类,编译器会…

Sketchup插件Vray户外场景设计渲染教程 Vray Next For Sketchup Exterior
Sketchup户外场景设计的Vray Next 你会学到什么 渲染白天和夜晚场景 后期制作 Sketchup的Vray Next 中级sketchup用户 大小解压后:3.83G 1280X720 mp4 语言:英语中英文字幕(根据原英文字幕机译更准确) 大家好, 我是…

实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
贺邦原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用,理解系统调用的工作机制。 实验过程: 本文实验选择24号…

三菱plc232数据线驱动下载_三菱PLC与西门子PLC有什么区别?
三菱PLC与西门子PLC有什么区别?分别有什么优点和缺点?该如何选择?学习哪种品牌?首先它们的编程理念不同,三菱PLC是日系品牌,编程直观易懂,学习起来会比较轻松,西门子PLC是德国品牌&a…
Github 树形菜单插件
ajax显示gitlab的,很像mac的树形展示。 直接在左侧做了一个ajax的树,每次访问gitlab自动加载。非常方便呢,在国内网速这么慢的情况下更显得好用了。 下载地址: https://github.com/buunguyen/octotree/tree/master/dist chrome安装…

C/C++、嵌入式秋招之SQL篇
⭐⭐1.选取最大(小)值 SELECT * FROM employees order by hire_date desc limit 0,1解释: 知识点 ORDER BY 根据指定的列对结果集进行排序,默认按照升序,降序 ORDER BY DESCLIMIT(m, n) 从第 m 1 行开始取 n 条记录…

C4D样条曲线建模大师班 Cinema 4D MasterClass: Master Modelling using Splines
通过本课程,快速学习使用样条曲线建模的基础知识,并将您的技能提升到一个新的水平 你会学到什么 能够使用样条线对整个对象进行建模 三维建模和UV展开 能够找到模拟复杂形状的最佳方法 无数的提示和技巧 在项目中应用蓝图的真实尺寸 对Uv制图有更好的理…

从头到尾彻底解析Hash表算法
从头到尾彻底解析Hash表算法 发布时间: 2013-10-02 10:26 阅读: 25156 次 推荐: 14 原文链接 [收藏] 作者:July、wuliming、pkuoliver 说明:本文分为三部分内容, 第一部分为一道百度面试题Top K算法的详解;第二部分为关于H…

ftp windows无法访问此文件夹请确保输入的文件名_企业实战|企业FTP搭建
安装Vsftpd提前关闭selinux 和firewalld防火墙1.安装vsftp软件包 $ yum -y install vsftpd*2.启动vsftpd服务器 $ systemctl restart vsftpd $ systemctl enable vsftpd3.检查服务是否正常启动 $ ps -ef|grep vsftp && netstat -tunlp|grep 21至此 匿名用户的ft…

C++、嵌入式软开之指针
1.(指针数据)int* pa[5]; 描述: pa是一个具有5个元素的指针数组,每个元素是一个int类型的指针; 2.(二级指针)以下程序的输出结果是: #include <iostream> using namespace std; void func(char **m){++m;cout

3dsMax插件V-Ray建筑可视化三维渲染细节技术学习教程
通过学习可用于相机放置、建模、修整等的策略,生成令人印象深刻且逼真的建筑三维渲染。了解如何将您的3D渲染场景提升到一个新的水平,以使您的图像引人入胜、有趣且讨人喜欢。在本课程中,讲师Verena Tatiana首先讨论了不同的细节处理方法&…

所有表单对象_Laravel 表单方法伪造与 CSRF 攻击防护
1、表单方法伪造有时候,我们可能需要手动定义发送表单数据所使用的 HTTP 请求方式,而 HTML 表单仅支持 GET 和 POST 两种方式,如果要使用其他的方式,则需要自己来定义实现。HTTP 请求方式概述最常见的 HTTP 请求方式自然是 GET 和…

使用按钮控制HTML5背景音乐开关
<!DOCTYPE HTML> <html> <head> <meta charset"utf-8"> <meta name"viewport" content"widthdevice-width; initial-scale1.0"> <title>演示:使用按钮控制HTML5背景音乐开关</title></…

hibernate和struts2实现分页功能
1.DAO层接口的设计,定义一个PersonDAO接口,里面声明了两个方法: public interface PersonDAO {public List<Person> queryByPage(String hql, int offset, int pageSize);public int getAllRowCount(String hql); } 2.DAO层接口的实现类…

Cmake软件编译opencv报错,CMake Warning at cmake/OpenCVDownload.cmake:193 (message): FFMPEG: Download...
当执行如下操作时: 出现下面报错, 在链接ipaddress.com查询raw.githubusercontent.com地址,然后将ip添加至C:\Windows\System32\drivers\etc\hosts中: 保存后,重新在cmake软件中点击“Configure”等待即可。

Blender+SP+UE5游戏艺术工作流程学习
Blender到虚幻引擎5 Blender游戏艺术 Blender for Game Art 你会学到: 如何在Blender中创建三维模型 UV如何展开和布局 如何在Substance Painter中表现肌理 如何使用虚幻引擎5 如何在UE5中点亮室内环境 MP4 |视频:h264,1280720 |音频:AAC,44.1 KHz&…

JQ 全选后获取选中的值_为什么在PBI中还需要切片器之三:Excel切片器之度量值切换...
Excel切片器之度量值切换原创 海峰没想到上篇文章一经发出,很快就过了10个留言,大喜过望,今天立马揭晓切片器之度量切换的应用。切片器之度量切换----参数法创建参数表,如下并导入数据模型创建需要的度量值,利润合计万…

layoutSubviews总结(转)
- (void)setNeedsDisplay- (void)drawRect但是是用initWithFrame 进行初始化时,当rect的值不为CGRectZero时,也会触发 You should override this method only if the autoresizing behaviors of the subviews do not offer the behavior you want. layoutSubviews, …

PHP日期格式转时间戳
PHP 提供了函数可以方便的将各种形式的日期转换为时间戳,该类函数主要是: strtotime():将任何英文文本的日期时间描述解析为时间戳。mktime():从日期取得时间戳。strtotime() strtotime() 函数用于将英文文本字符串表示的日期转换…

TFmini传感器使用
使用激光传感器 打开地面站,Mavlink控制台输入tfmini start --> tfmini status -->显示 current_distance:数字 即可得到距离; 将timini插到口UART&I2C B上面 需要在自启动文件中添加tfmini的自启动,否则出来的数据是0;…

3DsMax渲染插件VRay NEXT完整的视频指南
要求 基本的计算机和三维软件知识 这门课程对初学者和进阶者都有好处 我们确实经历了许多你甚至不知道存在的功能 VRay NEXT for 3Ds Max – Complete Video Guide 欢迎来到V-RAY视频手册 流派:电子学习| MP4 |视频:h264,1280720 |音频:aac,44100 Hz语言…

MyEclipse中运行环境jre、编译级别、tomcat运行环境区别
运行环境JRE SYSTEM LIARARY引入项目中依赖的jdk基础包,在java build path --》library中可以切换 编译级别是项目编译成.class时使用的编译jdk版本,只能向下编译 tomcat运行环境选择jdk版本, 以上三个配置最好一致,如果不一致可以…

食堂就餐刷卡系统源码_智慧食堂重新定义你的食堂管理系统
智慧食堂有着针对于多种业态的适用行解决方案,可以说几乎是满足了所有团餐食堂,从进销存管理到财务系统再到智能硬件,让对食堂有着传统麻木观念的人群有了耳目一新的变化,下面就跟大家说几个智能硬件亮点,从新帮你定义…

2022-2028年全球与中国闪光棉市场研究及前瞻分析报告
【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新(交付时间约3个工作日) 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了全球与中国闪光棉行业市场行业相关概述、全球与中国闪光棉行业市场行业运行环境、分析了全球与…

WebAPI初探
由于即将要接手的新项目计划用ASP.NET MVC3来开发,所以最近一段时间一直在看相关的书或文章。因为之前在大学里也曾学习过MVC2开发,也做过几个简单的MVC2的小型测试项目,不过在后来工作以后主要还是开发WebForm的项目,所以MVC的东…

ROS控制无人机offboard模式
在确保已经安装ROS以及Mavros情况下使用下列步骤 1.打开PX4源码程序,运行gazebo cd Firmware make px4_sitl_default gazebo2.打开Mavros roslaunch mavros px4.launch fcu_url:"udp://:14540127.0.0.1:14557"3.运行功能包程序 rosrun offboard_node o…

业余快速学习虚幻引擎教程
仅用5小时学会虚幻引擎! 你会学到什么 专为希望在业余时间打造虚幻引擎技能的艺术家和开发人员量身定制的专业技术 从几何图形到材料,从照明到互动,所有方面的提示 探索如何创造建筑水的效果 如何使用顶点绘制交互绘制多种材质 如何将特定地…