数据结构试卷第九套
1.时间复杂度

2.树,森林,二叉树的转换
2.1树转二叉树
- 给所有的兄弟节点之间加一条连线;
- 去线,只保留当前根节点与第一个叶子节点的连线,删除它与其他节点之间的连线;
- 然后根据左孩子右兄弟进行调整;

2.2森林转为二叉树
把森林的每棵树转为二叉树(遵循左孩子右兄弟即可)

2.3二叉树转为森林
当一颗二叉树的根节点有右孩子,则说明这颗二叉树能够转换为森林;
- 从根节点开始,若存在右孩子,则把与右孩子节点的连线删除。再查看分离后的二叉树,若其根节点的右孩子存在,则连线删除…。直到所有这些根节点与右孩子的连线都删除为止。


二叉树的N1再减去一个1就为T1;
3.链表的操作

4.树的操作

从子节点的角度,共有节点数为:度数为3的子节点数+度数为2的子节点数+度数为1的子节点数+根节点数=32+21+1*2+1=11;
从父节点的角度,共有节点数为:度数为3的节点数+度数为2的节点数+度数为1的节点数+度数为0的节点数=2+1+2+x;
解得x=6
5.平均比较次数的计算
平均比较次数=总比较次数/元素待查找的概率;
6.平均查找长度:

根据分块查找的原理,平均查找长度可以通过每块的平均查找长度乘以每块的概率来计算。在这个问题中,每块的平均查找长度为3(由于每块有6个元素,所以平均查找长度为6/2=3),每块的概率为1/5。
因此,平均查找长度为:
(1 * 1/5) + (2 * 1/5) + (3 * 1/5) + (4 * 1/5) + (5 * 1/5) = 15/5 = 3
接着,在块内查找元素的平均查找长度为:
(1 * 1/6) + (2 * 1/6) + (3 * 1/6) + (4 * 1/6) + (5 * 1/6) + (6 * 1/6) = 21/6 = 3.5
最后,将两个结果相加得到平均查找长度:
3 + 3.5 = 6.5
所以,平均查找长度为6.5;
7.拓扑序列:

首先按照集合关系画出有向图,从图中选出入度为0的①的顶点并输出,删除从①顶点发出来的所有有向边。然后再选择一个入度为0的顶点④并输出,删除从④顶点发出来的所有有向边,按此规律反复,最后得到的拓扑排序为(1,4,2,3)

8.循环队列和栈

最多能够存储m-1个元素;
栈的长度为m,表示可以存储m个元素,因为栈是一种后进先出(LIFO)的数据结构,插入和删除操作都在栈顶进行,所以不需要额外的空间来区分栈空和栈满的状态。
9.冒泡排序:

8,8
10.排序算法空间复杂度和时间复杂度:

1.在堆排序和快速排序中,如果从平均情况下排序的速度最快的角度来考虑,应该选择快速排序。因为在平均情况下,快速排序的时间复杂度为O(n log n),比堆排序略快。
2.而如果从节省存储空间的角度来考虑,则最好选择堆排序。因为堆排序是一种原地排序算法,不需要额外的存储空间,而快速排序在递归的过程中需要消耗大量的栈空间,所以在存储空间方面,堆排序更有优势。
11.平均查找长度:

1.先画出排序二叉树——>2.(1+22+32+42)/7=19/7;(比较次数=层数——>比较次数当前层数的节点数)

12.哈夫曼树
哈夫曼树就是:两个最小的节点构造一个较大的节点;

13.初始化堆

(24,65,33,80,70,56,48)——>小根堆思想
(80,70,56,65,24,33,48) ——>大根堆
14.最小生成树上所有边的权值和:

方法: 一种是随意从一个点开始,找权值最小的路径,另一种就是依次找最短的边的,舍去形成回路的边,直到遍历所有结点

15.有向图中的邻接表和邻接矩阵

**邻接表:**是一种顺序分配和链式分配相结合的存储结构。
**逆邻接表:**任一表头结点下的边结点的数量是图中该结点入度的弧的数量,与邻接表相反。
逆邻接表中边节点个数等于邻接表边结点个数。表结点个数相同,但是头结点个数不一定相同。
16.链表的知识点

链表插入和删除只是改变了相应节点的指针指向,地址并没有改变,所以不必移动
17.邻接矩阵知识点:

邻接表:0(v+e);
邻接矩阵:0(v^2);

邻接矩阵存储时,无论有向图还是无向图,也无论边的数目是多少,其存储空间都是O(n的平方),书上原话,所以邻接矩阵存储空间与边的数目无关
相关文章:
数据结构试卷第九套
1.时间复杂度 2.树,森林,二叉树的转换 2.1树转二叉树 给所有的兄弟节点之间加一条连线;去线,只保留当前根节点与第一个叶子节点的连线,删除它与其他节点之间的连线;然后根据左孩子右兄弟进行调整…...
【Linux第三课-基础开发工具的使用】yum、vim、gcc/g++编译器、gdb、Make/Makefile编写、进度条程序、git命令行简单操作
目录 yum - 软件包管理器快速认识yum快速使用yumyum搜索yum安装yum卸载 yum的周边 - yum的整个生态问题 vim快速介绍vimvim的模式命令模式插入模式低行模式 常见模式 -- 命令、低行命令模式 -- 光标的移动命令模式 -- 复制粘贴、剪贴、删除命令模式 -- 小写/大写替换模式命令模…...
Redis:ClassCastException【bug】
Redis:ClassCastException【bug】 前言版权Redis:ClassCastException【bug】错误产生相关资源控制器:UserController("/user")配置:RedisConfiguration实体类:User数据表:User 解决 最后 前言 2…...
JSON 配置文件
JSON 配置文件的作用 JSON 是一种数据格式,在实际开发中, JSON 总是以配置文件的形式出现。小程序项目中也不例外:通过不同的 .json 配置文件,可以对小程序项目进行不同级别的配置。 小程序项目中有 4 种 json 配置文件࿰…...
由浅到深认识Java语言(6):控制流程语句
该文章Github地址:https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.c…...
lv17 安防监控项目实战 3
代码目录 框架 our_storage 编译最终生成的目标文件obj 编译生成中间的.o文件 data_global.c 公共资源定义(使用在外extern即可)定义了锁定义了条件变量消息队列id、共享内存id、信号量id及key值发送短信、接收短信的号码向消息队列发送消息的函数&am…...
文本处理基本方法
目录 分词 jieba 词性标注 😆😆😆感谢大家观看😆😆😆 分词 在中文文本中,由于词与词之间没有明显的界限符,如英文中的空格,因此分词是中文自然语言处理的一个基础且…...
Java面试题(Spring篇)
💟💟前言 友友们大家好,我是你们的小王同学😗😗 今天给大家打来的是 Java面试题(Spring篇) 希望能给大家带来有用的知识 觉得小王写的不错的话麻烦动动小手 点赞👍 收藏⭐ 评论📄 小王的主页…...
操作系统:malloc与堆区内存管理
malloc是函数而不是系统调用,他的底层是同调调用brk和mmap这两个系统调用实现功能的,具体选择brk还是mmap要看申请的空间大小以及malloc中的阈值(一般是128kb) 注意申请的空间只有使用才会触发缺页中断映射到物理内存 不理解的话先…...
javaSwing推箱子游戏
一、简介 策略性游戏可以锻炼人的思维能力还能缓解人的压力,使人们暂时忘却生活当中的烦恼,增强人们的逻辑思维能力,游戏的艺术美也吸引着越来越多的玩家和厂商,寓教于乐,在放松人们心情的同时还可以活跃双手。在人类…...
JAVA多线程之JMM
文章目录 1. Java内存模型2. 内存交互3. 三大特性3.1 可见性3.1.1 可见性问题3.1.2 原因3.1.3 解决方法 3.2 原子性3.3 有序性 4. 指令重排5. JMM 与 happens-before5.1 happens-before关系定义5.2 happens-before 关系 在继续学习JUC之前,我们现在这里介绍一下Java…...
Windows10 专业版 系统激活
Windows10 专业版 系统激活 参考: Windows10系统激活技巧 第一步:在电脑桌面,新建一个文本文档 第二步:打开文本文档,输入以下代码后,直接保存关闭文档 slmgr/skms kms.03k.org slmgr/ato 第三步࿱…...
C#使用LINQ和EF Core
在实际应用中,您可以使用 LINQ 查询 EF Core 来执行各种数据库操作。通过 LINQ,您可以轻松地过滤、排序、分组和连接数据。 要使用LINQ查询EF Core中的数据,您可以按照以下步骤进行操作: 首先,确保您已经安装了 Entit…...
数字人解决方案— SadTalker语音驱动图像生成视频原理与源码部署
简介 随着数字人物概念的兴起和生成技术的不断发展,将照片中的人物与音频输入进行同步变得越来越容易。然而,目前仍存在一些问题,比如头部运动不自然、面部表情扭曲以及图片和视频中人物面部的差异等。为了解决这些问题,来自西安…...
HTML5语法总结
文章目录 一.HTML基本框架二.标题标签三.段落标签四.换行与水平线标签五.文本格式化标签(加粗、倾斜、下划线、删除线)六.图像标签扩展:相对路径,绝对路径与在线网址 七.超链接标签八.音频标签九.视频标签十.列表标签十一.表格标签扩展:表格结构标签合并…...
在github下载的神经网络项目,如何运行?
github网页上可获取的信息 在github上面,有一个requirements.txt文件,该文件说明了项目要求的python解释器的模块。 - 此外,还有一个README.md文件,用来说明项目的运行环境以及其他的信息。例如python解释器的版本是3.7、PyTorc…...
spring boot学习第十四篇:使用AOP编程
一、基本介绍 1,什么是 AOP (1)AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。 (2)利用 AOP…...
凯特信安云签解决方案
联合解决方案 凯特信安基于《电子签名法》设计“云签服务方案”,应用人脸识别、电子签章签名云服务等技术,支持多个自然人、多个企业等签名,满足各种移动终端签署的应用场景。面向不动产登记、工改系统等社会公众服务系统,针对自然…...
【xr806开发板使用】连接wifi例程实现
##开发环境 win10 WSL ##1、环境配置 参考:https://aijishu.com/a/1060000000287513 首先下载安装wsl 和ubuntu https://docs.microsoft.com/zh-cn/windows/wsl/install (1)安装repo: 创建repo安装目录: mkdir ~/…...
停车管理系统asp.net+sqlserver
停车管理系统asp.netsqlserver 说明文档 运行前附加数据库.mdf(或sql生成数据库) 主要技术: 基于asp.net架构和sql server数据库, 功能模块: 停车管理系统asp.net sqlserver 用户功能有菜单列表 我的停车记录 专…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
