当前位置: 首页 > news >正文

软考 中级软件设计师 考点知识点笔记总结 day06

文章目录

        • 6、树和二叉树
          • 6.1、树的基本概念
          • 6.2、二叉树的基本概念
          • 6.3、二叉树的遍历
          • 6.4、查找二叉树(二叉排序树)BST
          • 6.5、构造霍夫曼树+
          • 6.6、线索二叉树
          • 6.7、 平衡二叉树
        • 7、 图
          • 7.1 、 存储结构 - 邻接矩阵
          • 7.2 、 存储结构 - 邻接表
          • 7.3、图的遍历
          • 7.4、拓扑排序
          • 7.5 、最小生成树 普利姆算法
          • 7.6、 克鲁斯卡尔算法

6、树和二叉树
6.1、树的基本概念
  • 结点的度:一个结点的度是指该结点拥有的子树数量或直接连接到它的子节点的数量。例如,如果一个结点有三个子节点,则称这个

结点的度为3。结点拥有的子树个数称为结点的度

  • 树的度:树的度是树中所有结点的度的最大值。换句话说,它是树中任何一个结点的最大子节点数。

  • 叶子结点(Leaf Node):也称为终端结点,指的是没有子节点的结点。即度为0的结点。

  • 分支结点(Branch Node):与叶子结点相对,分支结点是指至少有一个子节点的结点。包括根节点在内的所有非叶子结点都是分支

结点。

  • 内部结点(Internal Node):除了根节点以外的所有分支结点。有时也将根节点算作内部结点的一部分

  • 父结点(Parent Node):对于树中的任意结点(除根节点外),其直接上层结点被称为它的父结点。

  • 子结点(Child Node):相对于父结点而言,直接下层的结点被称为子结点。

  • 兄弟结点(Sibling Node):拥有同一父结点的结点互为兄弟结点。

  • 层次(Level):从根开始计算,根节点位于第1层,它的直接子节点位于第2层,以此类推。层次也可以用来描述树的高度或者深

度,其中树的高度是指从根到最远叶子结点的最长路径上的边的数量。

6.2、二叉树的基本概念

二叉树的重要特性 每个节点最多有两个子节点

二叉树的第i层上最多2^(i - 1)个结点

深度为k的二叉树最多2^k - 1个结点

对任何一颗二叉树 如果叶子结点数为 n0 度为2的结点数为n2 n0 = n2 + 1

  • 满二叉树 叶子节点外,所有节点都有两个子节点。

  • 完全二叉树 除最后一层节点外,其他层节点都必须要有两个子节点,并且最后一层节点都要左

    排列。完全二叉树要满足两个条件:

1.除最后一层节点外,其他层节点都必须要有两个子节点
2.最后一层节点都要左排列

没有满足完全二叉树的例子就可以称为非完全二叉树。

6.3、二叉树的遍历

前序遍历 根左右

中序遍历 左根右

后序遍历 左右根

层次遍历

    A/ \B   C/ \
D   E
  • 前序A B D E C
  • 中序D B E A C
  • 后序D E B C A
  • 层次A B C D E

反向构造二叉树

由前序序列为ABHFDECG 中序序列为 HBEDFAGC 构造二叉树

        A/ \B   C/   /H   G\F/D/E

树转二叉树

孩子结点 左子树结点 兄弟结点 右孩子结点

孩子结点作为左结点 同层兄弟结点作为右结点

    A/|\B C D/ \
E   F
    A/B —— C —— D/  
E —— F
6.4、查找二叉树(二叉排序树)BST

特点左孩子小于根 右孩子大于根

插入节点的要求:
唯一性:
插入的值必须是唯一的,不能与树中已有节点的值重复。若存在重复值,插入操作失败。
示例:若树中已有节点值为 58,则插入 58 的操作会被拒

位置要求:
新节点必须作为叶子节点插入,即插入位置是查找路径上的最后一个空子节点。
实现逻辑:通过递归或迭代查找,直到找到空位置

维护 BST 性质:
左子树 < 根 < 右子树:
若插入值小于当前节点,继续向左子树查找。
若插入值大于当前节点,继续向右子树查找。

删除节点的要求:
根据节点的子节点情况分为三种情况:

叶子节点(无子节点):
直接删除该节点,父节点的对应子指针设为 null。

单子节点(只有左或右子节点):
将子节点直接替代被删除节点的位置。例如:
若删除节点有左子节点,则父节点的左/右指针指向左子节点。
若删除节点有右子节点,则父节点的左/右指针指向右子节点。

双子节点(左右子节点均存在):
替换规则:
找到左子树的最大值(前驱)或右子树的最小值(后继)。
用该值替换被删除节点的值,然后删除前驱或后继节点(递归处理)。
示例:删除节点 62(假设其左右子树均存在),可用左子树的最大值 58 替换 62,然后删除 58。

6.5、构造霍夫曼树+

哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度

假设有一组权值 5,29,7,14,23,3,11 构建霍夫曼树

步骤 1:初始权值列表
将权值按升序排列:
3, 5, 7, 11, 14, 23, 29

步骤 2:合并最小的两个权值
第 1 次合并
选择最小的两个权值:3 和 5
合并后的权值:
3+5=8
新列表:
7,8,11,14,23,29
生成的树:

   8  / \  3   5  

第 2 次合并
选择最小的两个权值:7 和 8
合并后的权值:
7+8=15
新列表:
11,14,15,23,29
生成的树:

    15  /  \  7    8  / \  3   5  

第 3 次合并
选择最小的两个权值:11 和 14
合并后的权值:
11+14=25
新列表:
15,23,25,29
生成的树:

    25  /  \  11   14  

第 4 次合并
选择最小的两个权值:15 和 23
合并后的权值:
15+23=38
新列表:
25,29,38
生成的树:

    38  /  \  15  23  /  \  
7    8  / \  3   5  

第 5 次合并
选择最小的两个权值:25 和 29
合并后的权值:
25+29=54
新列表:
38,54
生成的树:

    54  /  \  25  29  /  \  
11  14  

第 6 次合并
选择最小的两个权值:38 和 54
合并后的权值:

38+54=92
最终根节点:92
完整霍夫曼树结构:

         92  /  \  38    54  /  \   /  \  15  23 25  29  /  \       /  \  7    8    11  14  / \  3   5  
6.6、线索二叉树

为什么要有线索二叉树 ?

1、解决空指针浪费问题

2、加快遍历和查找效率

线索二叉树的概念

线索二叉树(Threaded Binary Tree)是通过将二叉树的空指针域转化为线索(指向遍历序列中的前驱或后继节点)而形成的二叉树。

类型

根据遍历方式的不同,线索二叉树分为:
前序线索二叉树:线索指向先序序列的前驱或后继。
中序线索二叉树:线索指向中序序列的前驱或后继。
后序线索二叉树:线索指向后序序列的前驱或后继。

存储结构

每个节点包含以下字段:
数据域(data):存储节点值。
左、右指针(leftChild、rightChild):指向左右子节点或线索。
左、右标志位(ltag、rtag):
ltag:若为 0,左指针指向左孩子;若为 1,左指针指向遍历序列的前驱。
rtag:若为 0,右指针指向右孩子;若为 1,右指针指向遍历序列的后继。

线索二叉树的表示

如何将二叉树转为线索二叉树?

选择遍历方式

根据需求选择先序、中序或后序遍历,确定线索指向的前驱和后继序列。
遍历并线索化
使用递归或非递归方法遍历二叉树。
在遍历过程中,记录每个节点的前驱节点(pre)。
当遇到空指针时,将其替换为对应的前驱或后继线索,并设置标志位。

6.7、 平衡二叉树

平衡二叉树提出原因?

  1. 解决BST的退化问题:防止树因数据有序而退化为链表,导致性能下降。
  2. 保证操作效率:通过高度限制和旋转操作,确保时间复杂度为 O(log⁡n)O(logn)。
  3. 自适应调整:动态维护树的平衡,适应频繁的插入和删除操作。
  4. 应用广泛性:为后续的自平衡树(如红黑树、B树)奠定了基础,成为高效数据管理的关键结构。

对数列{1,5,7,9,8,39,73,88} 构造排序二叉树

可以构造出多少形式不同的排序二叉树?

定义 任意结点的左右子树深度相差不超过1 每结点的平衡度只能为 -1 、 0 或1

7、 图

有向图

无向图

完全图 无向图中,若每对顶点之间都有一条边相连 则称该图为完全图。 在有向图中 每对顶点之间都有二条有向边相互连接 则称为完全图

度 、入度、 出度

7.1 、 存储结构 - 邻接矩阵

邻接矩阵(Adjacency Matrix)是用一个 n×n 的二维数组 表示图的结构,其中:

行和列 对应图中的顶点。
元素值 表示顶点之间的连接关系:
无权图:1 表示有边,0 表示无边。
带权图:元素值为边的权重,无边时用特殊值(如 0 或 ∞)表示。

有向图与无向图的区别
无向图:邻接矩阵对称(因为边是双向的)。
例如,若顶点 A 与 B 连接,则 A→B 和 B→A 对应的矩阵元素均为 1。
有向图:邻接矩阵不对称。
例如,若顶点 A 有边指向 B,则 A→B 的元素为 1,但 B→A 的元素可能为 0。

顶点的度数计算
无向图:顶点的度 = 该行(或列)的元素之和。
例题:
已知无向图邻接矩阵中顶点 B 的行元素为 [1, 0, 1],则其度数为 2。
有向图:
出度:该行元素之和。
入度:该列元素之和。
例题:
有向图邻接矩阵中顶点 B 的行元素为 [0, 1, 0],列元素为 [1, 0, 0],则:
出度为 1(指向 C),入度为 1(来自 A)。

图的类型判断
完全图:
无向图:除对角线外所有元素为 1。
有向图:每对顶点之间有两条边(双向),矩阵中非对角线元素全为 1。
自环:顶点与自身有边时,对角线元素为 1。
环:若存在路径 A→B→A,则矩阵中 A→B 和 B→A 均为 1。

邻接矩阵的优缺点
优点:
快速判断两点是否直接相连(时间复杂度 O(1))。
方便计算顶点的度、入度、出度。
缺点:
空间复杂度高(O(n²)),稀疏图浪费空间。
插入/删除顶点需重构矩阵,效率低。

7.2 、 存储结构 - 邻接表

首先每个顶点的邻接顶点用链表示出来 然后用一个一维数组来顺序存储上面每个链表的头指针

7.3、图的遍历
      v1/  \v2    v3/ \    / \
v4  v5 v6  v7\v8

深度优先 v1, v2, v4, v8, v5, v3, v6, v7,

广度优先 v1, v2, v3, v4, v5, v6, v7, v8。

7.4、拓扑排序

我们把用有向边表示活动之间开始的先后关系 这种有向图称为用顶点表示活动网络 简称AOV网络。

仅适用于有向无环图(DAG),若图中存在环,则无法进行拓扑排序。

拓扑序列不唯一,但所有合法序列必须满足依赖关系。

7.5 、最小生成树 普利姆算法

普利姆算法(Prim算法)是用于求解**带权无向连通图的最小生成树(MST)**的贪心算法。其核心思想是:

  • 逐步扩展:从一个顶点出发,逐步将顶点加入最小生成树集合,每次选择当前集合到未加入集合的最小边。
  • 贪心策略:每一步选择局部最优(当前最小边),最终得到全局最优解。

适用条件

  • 必须是连通图:若图不连通,需分别处理每个连通分量,生成最小生成森林。
  • 无向图:普利姆算法仅适用于无向图,且边有权值。
7.6、 克鲁斯卡尔算法

克鲁斯卡尔算法(Kruskal Algorithm)是用于求解**带权无向连通图的最小生成树(MST)**的贪心算法。其核心思想是:

  • 逐步选边:按边权值从小到大依次选择边,每次选择一条不形成环路的边,直到所有顶点连通。
  • 贪心策略:每一步选择当前最小边,最终得到全局最优解。

2. 适用条件

  • 必须是连通图:若图不连通,需分别处理每个连通分量,生成最小生成森林。
  • 无向图:克鲁斯卡尔算法仅适用于无向图,且边有权值。

相关文章:

软考 中级软件设计师 考点知识点笔记总结 day06

文章目录 6、树和二叉树6.1、树的基本概念6.2、二叉树的基本概念6.3、二叉树的遍历6.4、查找二叉树&#xff08;二叉排序树&#xff09;BST6.5、构造霍夫曼树6.6、线索二叉树6.7、 平衡二叉树 7、 图7.1 、 存储结构 - 邻接矩阵7.2 、 存储结构 - 邻接表7.3、图的遍历7.4、拓扑…...

爬虫基础之爬取猫眼Top100 可视化

网站: TOP100榜 - 猫眼电影 - 一网打尽好电影 本次案例所需用到的模块 requests (发送HTTP请求) pandas(数据处理和分析 保存数据) parsel(解析HTML数据) pyecharts(数据可视化图表) pymysql(连接和操作MySQL数据库) lxml(数据解析模块) 确定爬取的内容: 电影名称 电影主演…...

微信小程序面试内容整理-如何使用wx.request()进行网络请求

wx.request() 是微信小程序中用于发送网络请求的 API,类似于浏览器中的 fetch 或 XMLHttpRequest。通过 wx.request(),开发者可以向服务器发送 HTTP 请求,获取数据或者提交数据。 基本用法 wx.request() 通过提供一个配置对象来进行配置,配置对象中包括请求的 URL、请求方法…...

力扣100二刷——图论、回溯

第二次刷题不在idea写代码&#xff0c;而是直接在leetcode网站上写&#xff0c;“逼”自己掌握常用的函数。 标志掌握程度解释办法⭐Fully 完全掌握看到题目就有思路&#xff0c;编程也很流利⭐⭐Basically 基本掌握需要稍作思考&#xff0c;或者看到提示方法后能解答⭐⭐⭐Sl…...

该错误是由于`KuhnMunkres`类未定义`history`属性导致的

该错误是由于KuhnMunkres类未定义history属性导致的。以下是具体分析及解决方案&#xff1a; 错误原因分析 属性缺失 代码中试图访问km.history&#xff0c;但KuhnMunkres类未在初始化或算法执行过程中定义该属性&#xff0c;因此触发AttributeError。动画实现逻辑不完整 用户…...

DAPO:一个开源的大规模大型语言模型LLM强化学习系统

推断扩展赋予了大型语言模型前所未有的推理能力,强化学习作为激发复杂推理的核心技术,清华大学联合字节提出了解耦片段与动态采样策略优化(DAPO)算法,并全面开源了一个最先进的大规模强化学习系统,该系统使用Qwen2.5-32B基础模型在AIME 2024上取得了50分的高分。还开源了…...

数据结构中的引用管理对象体系

数据结构中的引用管理对象体系 &#xff08;注&#xff1a;似复刻变量即实例对象&#xff09; 引用管理对象的&#xff0c;有引用就能管理到它所指向的对象&#xff0c;我们拿引用最终的目的就是管理那些我们需要管理的最终直接对象&#xff0c;引用也是对象&#xff0c;同时…...

【自学笔记】智能合约基础知识点总览-持续更新

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 智能合约基础知识点总览目录1. 智能合约简介2. 以太坊与Solidity示例代码&#xff1a;Hello World智能合约 3. Solidity基础语法示例代码&#xff1a;简单的计数器合…...

Linux的Shell编程

一、什么是Shell 1、为什么要学习Shell Linux运维工程师在进行服务器集群管理时&#xff0c;需要编写Shell程序来进行服务器管理。 对于JavaEE和Python程序员来说&#xff0c;工作的需要。Boss会要求你编写一些Shell脚本进行程序或者是服务器的维护&#xff0c;比如编写一个…...

【八股文】volatile关键字的底层原理是什么

volatile只能保证可见性和有序性 volatile如何保证可见性 当对volatile变量进行写操作的时候&#xff0c;JVM会向处理器发送一条lock前缀的命令&#xff0c;将这个缓存中的变量会写到系统内存中。 所以&#xff0c;如果一个变量被volatile所修饰&#xff0c;每次数据变化之后…...

一种基于大规模语言模型LLM的数据分析洞察生成方法

从复杂数据库中提取洞察对数据驱动决策至关重要,但传统手动生成洞察的方式耗时耗力,现有自动化数据分析方法生成的洞察不如人工生成的有洞察力,且存在适用场景受限等问题。下文将介绍一种新的方法,通过生成高层次问题和子问题,并使用SQL查询和LLM总结生成多表数据库中的见…...

三大供应链管理模式——解决方案与实操案例详解

库存压到喘不过气&#xff0c;紧急订单却总赶不上交付&#xff1f;这是许多企业的真实困境——推式供应链盲目备货导致积压&#xff0c;拉式供应链又因响应慢而丢单。供应链管理&#xff0c;本质上是在“计划”与“变化”之间把握平衡。上篇文章&#xff0c;我们系统梳理了供应…...

【C++】STL库面试常问点

STL库 什么是STL库 C标准模板库&#xff08;Standard Template Libiary&#xff09;基于泛型编程&#xff08;模板&#xff09;&#xff0c;实现常见的数据结构和算法&#xff0c;提升代码的复用性和效率。 STL库有哪些组件 STL库由以下组件构成&#xff1a; ● 容器&#xf…...

集成学习之随机森林

目录 一、集成学习的含义 二、集成学习的代表 三、集成学习的应用 1、分类问题集成。&#xff08;基学习器是分类模型&#xff09; 2、回归问题集成。&#xff08;基学习器是回归模型&#xff09; 3、特征选取集成。 四、Bagging之随机森林 1、随机森林是有多个决策树&a…...

【SpringBatch】03步骤对象 (Step)控制与执行流程设计

目录标题 六、步骤对象 Step6.1 步骤介绍6.2 简单Tasklet6.3 chunk居于块Tasklet**ChunkTasklet 泛型** 6.4 步骤监听器6.5 多步骤执行6.6 步骤控制6.6.1 条件分支控制-使用默认返回状态6.6.2 条件分支控制-使用自定义状态值 6.7 步骤状态6.8 流式步骤 六、步骤对象 Step 前面…...

走进Java:String字符串的基本使用

❀❀❀ 大佬求个关注吧~祝您开心每一天 ❀❀❀ 目录 一、什么是String 二、如何定义一个String 1. 用双引号定义 2. 通过构造函数定义 三、String中的一些常用方法 1 字符串比较 1.1 字符串使用 1.2 字符串使用equals() 1.3 使用 equalsIgnoreCase() 1.4 cpmpareTo…...

AI如何变革亚马逊广告投放?DeepBI的智能优化解析

在亚马逊平台上&#xff0c;广告投放的方式正经历着从人工精细化运营到AI自动化优化的深刻变革。传统的广告投放依赖人工操作&#xff0c;涉及海量数据分析、手动调价、竞价策略优化等环节&#xff0c;既耗时又易受人为因素影响。而AI驱动的智能投放系统&#xff0c;如DeepBI&a…...

小程序电子画册制作,用户体验为王!

家人们&#xff0c;现在小程序电子画册超火&#xff0c;不管是展示产品还是分享故事都超实用。但在小程序电子画册制作过程中&#xff0c;用户体验真的得好好考量&#xff01;今天就和大家唠唠这其中的门道。 1、加载速度&#xff1a;快才是王道 打开小程序的瞬间&#xff0c…...

【商城实战(49)】解锁小程序端适配与优化,让商城飞起来

【商城实战】专栏重磅来袭&#xff01;这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建&#xff0c;运用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用户、商品、订单等核心模块开发&#xff0c;再到性能优化、安全加固、多端适配&#xf…...

英伟达GTC 2025大会产品全景剖析与未来路线深度洞察分析

【完整版】3月19日&#xff0c;黄仁勋Nvidia GTC 2025 主题演讲&#xff5c;英伟达 英伟达GTC 2025大会产品全景剖析与未来路线深度洞察分析 一、引言 1.1 分析内容 本研究主要采用了文献研究法、数据分析以及专家观点引用相结合的方法。在文献研究方面&#xff0c;广泛收集了…...

《TCP/IP网络编程》学习笔记 | Chapter 19:Windows 平台下线程的使用

《TCP/IP网络编程》学习笔记 | Chapter 19&#xff1a;Windows 平台下线程的使用 《TCP/IP网络编程》学习笔记 | Chapter 19&#xff1a;Windows 平台下线程的使用内核对象内核对象的定义内核对象归操作系统所有 基于 Windows 的线程创建进程与线程的关系Windows 中线程的创建方…...

线性规划的基本解、基本可行解和可行解

在线性规划中&#xff0c;基本解、基本可行解和可行解是非常重要的概念&#xff0c;特别是在使用单纯形法求解时。下面详细解释这些概念&#xff0c;并说明如何计算它们。 1. 线性规划问题的标准形式 线性规划的标准形式为&#xff1a; 其中&#xff1a; A 是 mn 的矩阵&…...

【AVRCP】服务发现互操作性:CT 与 TG 的 SDP 协议契约解析

目录 一、服务发现的核心目标&#xff1a;能力画像对齐 二、控制器&#xff08;CT&#xff09;服务记录&#xff1a;控制能力的声明 2.1 必选字段&#xff1a;角色与协议的刚性契约 2.1.1 服务类标识&#xff08;Service Class ID List&#xff09; 2.1.2 协议描述列表&am…...

[从零开始学习JAVA] Stream流

前言&#xff1a; 本文我们将学习Stream流&#xff0c;他就像流水线一样&#xff0c;可以对我们要处理的对象进行逐步处理&#xff0c;最终达到我们想要的效果&#xff0c;是JAVA中的一大好帮手&#xff0c;值得我们了解和掌握。&#xff08;通常和lambda 匿名内部类 方法引用相…...

K8S学习之基础三十八:Kube-static-metrics监控

Kube-static-metrics监控 ​ kube-static-metrics组件可以通过监听apiserver生成有关资源对象的状态指标&#xff0c;比如Node、Pod&#xff0c;需要注意的是kube-state-metrics只是简单的提供一个metrics数据&#xff0c;并不会存储这些指标数据&#xff0c;所以可以使用Prom…...

JAVA-多线程join()等待一个线程

引言&#xff1a;更多线程的认识可以看一篇博客&#xff1a; JAVA-Thread类实现多线程-CSDN博客 一、join()的作用 我们知道线程是随机调度执行的&#xff0c;但是有时候我们需要另一个任务完成了&#xff0c;我们才能继续&#xff0c;这个时候我们就可以使用join去等待线程结束…...

HashMap 常用方法

HashMap 常用方法 方法作用示例put(K key, V value)添加键值对map.put("apple", 10);get(Object key)获取指定键的值map.get("apple"); → 10remove(Object key)删除指定键的键值对map.remove("orange");containsKey(Object key)检查是否包含指…...

LogicFlow介绍

LogicFlow介绍 LogicFlow是一款流程图编辑框架&#xff0c;提供了一系列流程图交互、编辑所必需的功能和灵活的节点自定义、插件等拓展机制。LogicFlow支持前端自定义开发各种逻辑编排场景&#xff0c;如流程图、ER图、BPMN流程等。在工作审批流配置、机器人逻辑编排、无代码平…...

Docker搭建MySQL主从服务器

一、在主机上创建MySQL配置文件——my.cnf master服务器配置文件路径&#xff1a;/data/docker/containers/mysql-cluster-master/conf.d/my.cnf slave服务器配置文件路径&#xff1a; /data/docker/containers/mysql-cluster-master/conf.d/my.cnf master服务配置文件内容 …...

计算机二级web易错点(4)-选择题

选项 A&#xff1a;<input type"radio"> 用于创建单选按钮&#xff0c;同一组单选按钮中只能选择一个选项&#xff0c;所以该选项不符合要求。选项 B&#xff1a;HTML 中没有 type"check" 这种类型&#xff0c;是错误的写法&#xff0c;不能产生复选…...

3.19学习总结

学习了Java中的面向对象的知识点 完成一道算法题&#xff0c;找树左下角的值&#xff0c;错误的以为左下角只能是最底层的左节点&#xff0c;但指的是最底层最左边的节点...

Swagger-告别手写文档

文章目录 1. 引言2. Swagger是什么&#xff1f;3. SpringBoot2.7.3集成Swagger4. 常见注解 1. 引言 在RESTful API开发中&#xff0c;维护准确、易读的接口文档是团队协作的核心挑战&#xff0c;通常接口文档分为离线的和实时的。离线的接口文档工具有 YAPI等&#xff0c;其中…...

LeetCode-回文数

原题链接&#xff1a;9. 回文数 - 力扣&#xff08;LeetCode&#xff09; 首先我会想到的是&#xff0c;将这个数字转成字符串&#xff0c;然后通过前后指针判断是否相等&#xff0c;最终返回结果是否为回文数&#xff0c;时间复杂度&#xff1a;O(n)&#xff0c;空间复杂度&am…...

数据结构之链表(双链表)

目录 一、双向带头循环链表 概念 二、哨兵位的头节点 优点&#xff1a; 头节点的初始化 三、带头双向链表的实现 1.双链表的销毁 2.双链表的打印 3.双链表的尾插和头插 尾插&#xff1a; 头插&#xff1a; 4.双链表的尾删和头删 尾删&#xff1a; 头删&#xff1a; …...

硬件基础(5):(2)二极管分类

文章目录 &#x1f4cc; 二极管的分类与详细介绍1. **整流二极管&#xff08;Rectifier Diode&#xff09;**特点&#xff1a;选型依据&#xff1a;补充说明&#xff1a; 2. **快恢复二极管&#xff08;Fast Recovery Diode&#xff09;**特点&#xff1a;选型依据&#xff1a;…...

MQTT 和 Modbus 的优缺点对比

MQTT和Modbus协议是物联网&#xff08;IoT&#xff09;躲不开的两种协议&#xff0c;市面上覆盖了百分之98的产品。 MQTT由IBM在1999年发布。2014年&#xff0c;MQTT成为OASIS&#xff08;结构化信息标准促进组织&#xff09;的标准&#xff0c;后来被ISO/IEC 20922正式采纳&a…...

Android14 系统左右声音通道设置代码

Android14 系统左右声音通道设置代码 文章目录 Android14 系统左右声音通道设置代码一、前言二、系统级设置左右声音通道分析1、各方案设置左右声音通道的主要代码&#xff08;1&#xff09;3588 Android13 方案的实现&#xff08;2&#xff09;9679 Android14 方案的实现&…...

【Golang】go如何通过atomic原子操作来确保数据一致性

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…...

2025年汽车加气站操作工考试精选题库

汽车加气站操作工题库中题目及答案&#xff1a; 单项选择题 1、按压力容器的设计压力分为&#xff08; &#xff09;个压力等级。 A. 3 B. 4 C. 5 答案&#xff1a;B 2、缓冲罐的安装位置在天然气压缩机&#xff08; &#xff09;。 A. 前 B. 后 C. 中间 答案&#…...

LLVM学习--外部项目

不包含于核心LLVM和Clang存储库的项目需要单独下载。在本章中&#xff0c;我们将介绍各种其他官方LLVM项目&#xff0c;并介绍如何构建和安装它们。仅仅对核心LLVM工具感兴趣的读者可以跳过本章&#xff0c;或者在需要的时候翻阅。 在本章中&#xff0c;我们将介绍以下项目安装…...

AUTOSAR_DoIP_Detailed

AUTOSAR DoIP模块详解 基于AUTOSAR标准的诊断通信协议实现 目录 架构概述通信流程消息格式配置结构详细序列总结1. 架构概述 1.1 模块架构 DoIP模块是AUTOSAR基础软件中负责诊断通信的核心组件。它通过TCP/IP网络实现诊断工具与ECU之间的通信。主要功能包括: 基础功能 基于UD…...

C语言:(大数相加版)数字阶梯求和

题目&#xff1a; 给定a和n&#xff0c;计算aaaaaaa...a(n个a)的和。 输入 测试数据有多组&#xff0c;输入a&#xff0c;n&#xff08;1<a<9,1<n<100&#xff09;。 输出 对于每组输入,请输出结果。 分析&#xff1a; 1. 方式和规定&#xff1a;大数相加必然越界…...

Echarts 折线图

功能 每月记录值&#xff0c;当数据大于600画红线&#xff0c;小于300画蓝线&#xff0c;其他在中间值为黑线。鼠标移动上去后&#xff0c;现在数据值。 option {tooltip: {trigger: axis, // 触发类型&#xff1a;坐标轴触发show: true, // 显示提示框formatter: function …...

element-plus中Dropdown下拉菜单组件的使用

1、基本使用 复制下面的代码&#xff1a; <!-- 选择查询类型 --> <el-dropdown trigger"click"><span class"el-dropdown-link"><span style"width:60px;color:#404040">查询类型</span><el-icon class"e…...

Kafka详解——介绍与部署

1. 什么是 Kafka&#xff1f; Kafka 是一个分布式的消息队列系统&#xff0c;最初由 LinkedIn 开发&#xff0c;后来成为 Apache 开源项目。它的主要用途包括实时数据处理、日志收集、数据流管道构建等。Kafka 具备高吞吐量、可扩展性、持久性和容错性&#xff0c;广泛应用于大…...

ngx_http_core_srv_conf_t

定义在 src\http\ngx_http_core_module.h typedef struct {/* array of the ngx_http_server_name_t, "server_name" directive */ngx_array_t server_names;/* server ctx */ngx_http_conf_ctx_t *ctx;u_char *file_…...

4.angular 服务

服务是在controller里面引入的服务&#xff1a; 最好是内部服务在前面&#xff0c;自定义服务在后面 内部服务 $scope $scope.$watch(‘属性名’, function(newVal, oldVal) {}, true) true是深度监听,对象函数等$scope.$apply 触发页面更新,里面传入回调函数,比如说之前那个…...

[动手学习深度学习]26. 网络中的网络 NiN

前面的LeNet、AlexNet、VGG在设计上的共同之处在于&#xff1a;先以卷积层构成的模块充分抽取空间特征&#xff0c;再以全连接层构成的模块来输出分类结果 其中AlexNet和VGG对LeNet的改进主要在于如何对这两个模块价款&#xff08;增加通道数&#xff09;和加深 这一节的NiN提出…...

【设计模式】原型模式

三、原型模式 3.2 原型模式 同工厂模式一样&#xff0c;原型(Prototype) 模式也是一种创建型模式。原型模式通过一个对象 (原型对象)克隆出多个一模一样的对象。实际上&#xff0c;该模式与其说是一种设计模式&#xff0c;不如说是 一种创建对象的方法(对象克隆),尤其是创建给…...

力扣题目汇总 使用贪心算法解决问题

贪心算法是一种通过局部最优解来获得全局最优解的算法。它的核心思想是&#xff1a;在每一步中选择当前看起来最优的解&#xff0c;并希望通过一系列局部最优选择最终得到全局最优解。 121.买卖股票的最佳时机 分析&#xff1a; 在每一天求出当前最优的利润&#xff0c;也就…...