软考-软件设计师(3)-数据结构与算法:树、图、队列、查找算法、排序算法、霍夫曼编码/树、环路复杂性、算法/时间复杂度/空间复杂度等高频考点

场景

软考-软件设计师-数据结构与算法模块高频考点整理。

以下为高频考点、知识点汇总,不代表该模块所有知识点覆盖,请以官方教程提纲为准。

注:

博客:
霸道流氓气质-CSDN博客

实现

知识点

树:节点的度、树的度、深度、高度、满二叉树、完全二叉树、平衡二叉树、B树、二叉排序树

节点的度:节点含有子树的个数

树的度:树中最大节点的度就是树的度

树的深度:从根节点开始、自顶向下逐层累加

树的高度:从叶节点开始、自底向上逐层累加

一棵有n个结点的树的所有节点的度数之和为n-1

1、满二叉树:

一个二叉树,如果每一层的节点数都达到了最大值(均为2),则这个二叉树就可以被称作为 "满二叉树"

已知层数求总和:M=₂ⁿ−1,n为层数,M为总数

已知总数求层数:n=log₂(M+1)

2、完全二叉树:

若二叉树中最多只有最下面两层的结点的度可以小于2,并且最下面一层的叶子结点都依次排列在该层最左边的位置上,

则这样的二叉树称为完全二叉树

前 h−1层是满的,最后一层不满,但是最后一层从左到右是连续的

有n个节点的完全二叉树的深度/高度为[log₂ⁿ]+1

技巧:此类题可以画出完全二叉树并代入公式验证

3、平衡二叉树:

平衡二叉树或者是一棵空树,或者是具有下列性质的二叉树:

它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。

4、B树:

B树又叫B-树

是一种多路平衡搜索树,它的阶数m指它最多可以有多少个子结点,当m为2时,B树就成了二叉搜索树

一棵m阶的B树定义:

每个结点最多可以有m-1个关键字,可以是键值对

根结点最少可以只有1个关键字

非根结点最少有m/2个关键字

每个结点的关键字按照从小到大排序,它左子树结点的关键字都小于它,右子树结点的关键字都大于它

所有叶子结点位于同一层,也就是根结点到所有叶子的路径长度相同

每个结点都存有索引key和数据value

5、二叉排序树/二叉查找树/二叉搜索树

二叉排序树或者是一棵空树,或者是具有下列特点的二叉树:

(1)若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值;

(2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;

(3)左、右子树也分别为二叉排序树;

举例:用关键字序列10、20、30、40、50构造的二叉排序树为

6、经典题目:已知结点的度数和个数求叶子结点个数

一棵度为4的数T中,若有5个度为4的结点,7个度为3的结点,3个度为2的结点,9个度为1的结点,则树T的叶子结点个数

根据树中结点总数为n,n=分支数+1,而分支数等于树中各个节点的度之和,所以根据5*4+7*3+3*2+9*1+1=叶子数+5+7+3+9;因此叶子数为33个

图:邻接矩阵、邻接表、有向图、无向图

1、邻接矩阵

借助矩阵(二维数组)表示元素(图的任意两个顶点)之间的关系

在含有n个顶点和e条边的无向图的邻接矩阵中,零元素的个数是:邻接大小是n²,非零元素的个数为2e,所以零元素的个数是n²-2e

在含有n个顶点、e条边的简单有向图采用邻接矩阵存储结构,则该矩阵的元素数目为n²,其中非零元素数据为e

对于有向图,其邻接矩阵中非零元素的数目表示有向弧的个数

无向图的邻接矩阵是对称矩阵

无向图中一个顶点的度是指图中与该顶点相邻的顶点数

有向图和无向图及其邻接矩阵图示:

有向图的邻接矩阵表示法

2、邻接表

3、根据邻接矩阵求各顶点的出度

邻接矩阵A为非对称矩阵,说明图是有向图,各顶点的出度为矩阵行中1的个数,即2,2,1,1

队列:循环队列、优先队列

1、循环队列

对于循环队列,求队头元素的指针的计算公式为(rear-

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

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

相关文章

利用宝塔部署前后端分离springboot项目,以EasyPan为例

前置准备 服务器购买 请参考其他教程,这里不再赘述。 项目 部署到服务器前请确保项目在本地运行正常 安装宝塔面板 宝塔Linux面板的安装配置以及基本使用教程(超详细)_宝塔linux面板新手使用教程-CSDN博客 sql文件 IDEA中怎样导出数据…

删除的视频怎样才能恢复?详尽指南

在日常生活中,我们有时会不小心删除一些重要的视频文件,或者在整理存储空间时不慎丢失了珍贵的记忆片段。这时候,我们可以通过一些数据恢复工具和技巧,找回这些被删除的视频。本文将详细介绍几种常见且有效的视频恢复方法&#xf…

Vue与ASP.NET Core Web Api设置localhost与本地ip地址皆可访问

Vue的设置 我们创建并启动一个Vue项目,如下所示: 打开cmd,输入ipconfig查询本地ip地址: 想通过本地ip地址访问,把localhost改成本地ip地址,发现打不开: 这是因为Vue项目默认只有localhost&…

【Linux】进程IO|重定向|缓冲区|dup2|dup|用户级缓冲区|模拟缓冲区

目录 前言 重定向 实验一 为什么log.txt文件的文件描述符是1 为什么向stdout打印的信息也出现在文件中 实验二 用户级缓冲区 为什么要有用户级缓冲区 系统调用 dup 为什么close(fd1)之后还能向log.txt写入数据? dup2 缓冲区 观察现象 测试1 测试2 测…

C++初阶学习第三弹——类与对象(上)

目录 一.初步认知对象 二.类的基本组成、 1.类的定义 2.类的访问限定符及封装 3.类的作用域 4、类的大小的计算 5.this指针 三.总结 一.初步认知对象 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。…

Linux下普通用户无法执行sudo指令

当执行sudo指令时出现: xxx(普通用户名字) is not in the sudoers file 说明在/etc/sudoers文件中没有把xxx加入到可执行sudo指令的名单中,因此需要修改sudoers文件。 解决方法:1、vim /etc/sudoers (要…

什么是hdfs如何使用驱动程序访问hdfs

目录 什么是hdfs 主要特点包括: 架构组成: 应用场景: 如何使用驱动程序访问hdfs 准备工作环境: 启动 Hadoop 服务 可能遇到的问题: ssh验证失败 验证Hadoop服务 对hdfs进行文件操作 什么是hdfs HDFS&#x…

vite5+vue3开发阅读APP实战笔记20240725

目前界面长成这样: 配置别名 修改vite.config.js import {defineConfig} from vite import vue from vitejs/plugin-vue import path from "path"// https://vitejs.dev/config/ export default defineConfig({server: {open: true,port: 8088,},plug…

论文阅读【检测】:商汤 ICLR2021 | Deformable DETR

文章目录 论文地址AbstractMotivation技术细节多尺度backbone特征MSDeformAttention 小结 论文地址 Deformable DETR 推荐视频:bilibili Abstract DETR消除对目标检测中许多手工设计的组件的需求,同时表现出良好的性能。然而,由于Transfor…

Odoo 17 仪表盘开发指南:打造高效的数据可视化中心

在现代企业管理中,数据驱动的决策至关重要。Odoo 17 提供了强大的平台来构建自定义仪表板, 适用于数据统计、工作台、驾驶舱、数据可视化等场景,以便用户能够一目了然地监控关键指标并做出及时反应。本文将介绍如何在 Odoo 17 中开发一个灵活且高度定制化的仪表盘系统,包括…

12_TypeScript 模块 以及 模块化封装DB 库

TypeScript 模块 1、模块中暴露方法12、模块中暴露方法23、模块中暴露方法34、封装[上一节的db 库](https://blog.csdn.net/qq_46143850/article/details/140664100)5、TypeScript 命名空间 模块的概念(官方): 关于术语的一点说明&#xff1a…

C语言 -- 动态内存管理

C语言 -- 动态内存管理 1. 为什么要有动态内存分配2. malloc 和 free2.1 malloc2.2 free 3. calloc 和 realloc3.1 calloc3.2 realloc 4. 常见的动态内存的错误4.1 对NULL指针的解引用操作4.2 对动态开辟空间的越界访问4.3 对非动态开辟内存使用free释放4.4 使用free释放一块动…

05 capture软件创建元器件库(以STM32为例)

05 创建元器件库_以STM32为例 一、新建原理图库文件二、新建器件三、开始创建元器件 一些IC类元件,需要自己创建元器件库。 先看视频,然后自己创建STM32F103C8T6的LQFP48的元器件。 STM32F103C8T6是目前为止,自己用的最多的芯片。 先要有数据…

Qt自定义MessageToast

效果&#xff1a; 文字长度自适应&#xff0c;自动居中到parent&#xff0c;会透明渐变消失。 CustomToast::MessageToast(QS("最多添加50张图片"),this);1. CustomToast.h #pragma once#include <QFrame>class CustomToast : public QFrame {Q_OBJECT pub…

【学习笔记】解决Serial Communication Library编译问题

【学习笔记】解决编译 Serial Communication Library 时的 Catkin 依赖问题 Serial Communication Library 是一个用 C 编写的用于连接类似 rs-232 串口的跨平台库。它提供了一个现代的 C 接口&#xff0c;它的工作流程设计在外观和感觉上与 PySerial 相似&#xff0c;但串口速…

ControlNet on Stable Diffusion

ControlNet on Stable Diffusion 笔记来源&#xff1a; 1.Adding Conditional Control to Text-to-Image Diffusion Models 2.How to Use OpenPose & ControlNet in Stable Diffusion 3.ControlNet与DreamBooth&#xff1a;生成模型的精细控制与主体保持 4.Introduction t…

光猫设置桥接 路由器pppoe拨号 设置正常访问光猫 (openwrt)

网络信息展示 光猫桥接很简单吧&#xff0c;就不说了。先来列出修改前的网络接口和网络信息。 光猫192.168.1.1&#xff0c;openwrt 10.0.0.0/8 初始配置 需要记录的信息&#xff1a;WAN的网络设备&#xff08;eth1&#xff09;&#xff0c;光猫的IP&#xff08;192.168.1.1&am…

使用法国云手机进行面向法国的社媒营销

在当今数字化和全球化的时代&#xff0c;社交媒体已经成为企业营销和拓展市场的重要工具。对于想进入法国市场的企业来说&#xff0c;如何在海外社媒营销中脱颖而出、抓住更多的市场份额&#xff0c;成为了一个关键问题。法国云手机正为企业提供全新的营销工具&#xff0c;助力…

《人工智能大语言模型技术发展研究报告(2024)》【下载】

《人工智能大语言模型技术发展研究报告&#xff08;2024&#xff09;》下载 自2023年起&#xff0c;大模型技术产品的快速迭代和升级&#xff0c;已经成为全球科技竞争的关键因素。由中国软件评测中心发布的《人工智能大语言模型技术发展研究报告&#xff08;2024&#xff09;》…

kafka详解及应用场景介绍

Kafka架构 Kafka架构&#xff0c;由多个组件组成&#xff0c;如下图所示&#xff1a; 主要会包含&#xff1a;Topic、生产者、消费者、消费组等组件。 服务代理&#xff08;Broker&#xff09; Broker是Kafka集群中的一个节点&#xff0c;每个节点都是一个独立的Kafka服务器…