数据结构试卷第九套

news2024/10/7 8:30:53

1.时间复杂度

2.树,森林,二叉树的转换

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

把森林的每棵树转为二叉树(遵循左孩子右兄弟即可)
请添加图片描述

2.3二叉树转为森林

当一颗二叉树的根节点有右孩子,则说明这颗二叉树能够转换为森林;

  1. 从根节点开始,若存在右孩子,则把与右孩子节点的连线删除。再查看分离后的二叉树,若其根节点的右孩子存在,则连线删除…。直到所有这些根节点与右孩子的连线都删除为止。
    请添加图片描述
    在这里插入图片描述
    二叉树的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的平方),书上原话,所以邻接矩阵存储空间边的数目无关

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

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

相关文章

gitlab cicd问题整理

1、docker设置数据目录: 原数据目录磁盘空间不足,需要更换目录: /etc/docker/daemon.json //写入/etc/docker/daemon.json {"data-root": "/data/docker" } 2、Dockerfile中ADD指令不生效 因为要ADD的文件被.docker…

使用Python进行自然语言处理(NLP):NLTK与Spacy的比较【第133篇—NLTK与Spacy】

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 使用Python进行自然语言处理(NLP):NLTK与Spacy的比较 自…

[数据集][目标检测]焊接件表面缺陷检测数据集VOC+YOLO格式2292张10类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2292 标注数量(xml文件个数):2292 标注数量(txt文件个数):2292 标注…

【鸿蒙HarmonyOS开发笔记】常用组件介绍篇 —— 弹窗组件

简介 弹窗是移动应用中常见的一种用户界面元素,常用于显示一些重要的信息、提示用户进行操作或收集用户输入。ArkTS提供了多种内置的弹窗供开发者使用,除此之外还支持自定义弹窗,来满足各种不同的需求。 下面是所有涉及到的弹窗组件官方文档…

NSSCTF 403,444,2145,3845,404,445

[SWPUCTF 2021 新生赛]简简单单的逻辑 py文件,使用pycharm打开进行分析 其中,hex()[2:]:将十进制转化为十六进制 zfill(2):位数不足2,前补0 这里即将flag的ASCII码与key进行异或,再将每位转化为十六进制…

Prism的发布和订阅

首先需要设置一个发布和订阅的类 -- 这里发布和订阅的消息是string类型所以就只用PubSubEvent类 发布部分(构造函数注入,发布个“Hello”) 订阅部分: public partial class ViewC : UserControl {private readonly IEventAggrega…

文件的基础

一、文件 什么是文件 文件流: 一、1、文件的相关操作 创建文件的三种方式: public class FileCreate {public static void main(String[] args) {}//方式1 new File(String pathname)Testpublic void create01() {String filePath "e:\\news1.…

1987-2022年各省专利申请授权数据(8个指标))

1987-2022年各省专利申请授权数据(8个指标)) 1、时间:1987-2023年 2、指标:国内专利申请受理量(项)、国内发明专利申请受理量(项)、国内实用新型专利申请受理量(项)、国内外观设计专利申请受理量(项)、国内专利申请授…

机器学习(26)回顾gan+文献阅读

文章目录 摘要Abstract一、李宏毅机器学习——GAN1. Introduce1.1 Network as Generator1.2 Why distribution 2. Generative Adversarial Network2.1 Unconditional generation2.2 Basic idea of GAN 二、文献阅读1. 题目2. abstract3. 网络架构3.1 Theoretical Results 4. 文…

JavaWeb:vue、AJax、ELement、maven、SpringBoot、、Http、Tomcat、请求响应、分层解耦

1 Vue 1.1 Vue介绍 VUE是前端框架&#xff0c;基于MVVM&#xff0c;实现数据双向绑定 框架是半基础软件&#xff0c;可重用的代码模型 1.2 Vue指令 <script src"js/vue.js"></script></head> <body><div id"id"><!--…

使用 VS Code + Github 搭建个人博客

搭建个人博客的方案 现在&#xff0c;搭建个人博客的方式有很多&#xff0c;门槛也很低。 可以选择已有平台&#xff1a; 掘金语雀知乎简书博客园SegmentFault… 也可以选择一些主流的博客框架&#xff0c;自行搭建。 HexoGitBookVuePressdumi… 如何选择&#xff1f; 我…

es索引操作命令

索引操作 index 创建索引 put 方法创建索引 使用 put 创建索引时必须指明文档id&#xff0c;否则报错 # PUT 创建命令 # test1 索引名称 # type1 类型名称&#xff0c;默认为_doc&#xff0c;已经被废弃 # 1 文档id PUT /test1/type1/1 {"name":"zhangsan&…

【C语言】内存函数~

一、前言 上期我们讲解了与字符相关的函数&#xff1a;其中就有strcmp()字符串比较函数&#xff1b;strcpy()字符串拷贝函数&#xff1b;他们都能对内存进行一定的操作&#xff0c;可是却无法处理一些非字符串的数据。而这里我将介绍这四个函数&#xff1a;分别是memcpy()&…

Ubuntu 16.04 设置 root 密码

Ubuntu 16.04 设置 root 密码 1. sudo2. parserReferences 1. sudo sudo (/ˈsuːduː/ or /ˈsuːdoʊ/) is a program for Unix-like computer operating systems that allows users to run programs with the security privileges of another user, by default the superus…

Linux下进程的调度与切换

&#x1f30e;进程的调度与切换 文章目录&#xff1a; 进程的调度与切换 进程切换 进程调度       活动状态进程队列       位图判断       过期队列 总结 前言&#xff1a; 在Linux操作系统中&#xff0c;进程的调度与切换是操作系统核心功能之一&#xff…

ViT如何支持变长序列(patches)输入?

问题&#xff1a;当增加输入图像的分辨率时&#xff0c;例如DeiT 从 224 到 384&#xff0c;一般来说会保持 patch size&#xff08;例如9&#xff09;&#xff0c;因此 patch 的数量 N 会发生了变化。那么视觉transformer是如何处理变长序列输入的? 回答&#xff1a; 在讨论…

鸿蒙开发学习:【驱动子系统】

OpenHarmony驱动子系统采用C面向对象编程模型构建&#xff0c;通过平台解耦、内核解耦&#xff0c;兼容不同内核&#xff0c;提供了归一化的驱动平台底座&#xff0c;旨在为开发者提供更精准、更高效的开发环境&#xff0c;力求做到一次开发&#xff0c;多系统部署。 为了缩减…

go rabbitmq 操作

go rabbitmq 操作 go 依赖包github.com/streadway/amqp docker快速部署 docker pull rabbitmq:management docker run -d rabbitmq:management # 先跑一个看看监听了哪些端口 docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq #5672 go 程序连接&#x…

Linux:系统初始化,内核优化,性能优化(3)

优化系统的文件句柄数&#xff08;全局&#xff09; 也就是系统的最大文件数量 查看最大数量 cat /proc/sys/fs/file-max 当我们的服务器有非常大的一个数据并发的时候十几二十万的文件需要去配置&#xff0c;可能这个是远远不够的&#xff0c;我们就要去修改 vim /etc/sy…

栈和队列(Java实现)

栈和队列&#xff08;Java实现&#xff09; 栈 栈(Stack)&#xff1a;栈是先进后出&#xff08;FILO, First In Last Out&#xff09;的数据结构。Java中实现栈有以下两种方式&#xff1a; stack类LinkedList实现&#xff08;继承了Deque接口&#xff09; &#xff08;1&am…