自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(361)
  • 收藏
  • 关注

原创 数据结构 最短路径课设(源码+实验报告+视频讲解)(用了自取)

关于数据结构最短路径问题实验报告+代码+视频(用了自取)

2023-01-23 20:18:50 3107

原创 课程设计、二叉树实现及应用(附上源码和实验报告,用了自取)

结课课设对二叉树的应用实现项目

2023-01-03 20:58:45 873

原创 课设 银行家算法 源码+实验报告(用了自取)

银行家算法400行代码,用自取,逻辑清晰、思路完整、代码布局合理,复制粘贴即可使用

2023-01-02 10:49:15 7446 2

原创 linux——ps命令

【代码】linux——ps命令。

2025-07-29 21:01:33 40

原创 MySQL(配置)——MariaDB使用

MariaDB 和 MySQL 作为两个流行的关系型数据库管理系统,它们的区别可以从多个角度来探讨。尽管 MariaDB 最初是 MySQL 的一个分支,但随着时间的推移,它们逐渐在功能、性能和开发方向上有所不同。是 MySQL 的一个分支,侧重于开源、社区驱动、性能优化和更多的存储引擎支持。由 Oracle 控制,主要用于企业级应用,支持商业许可证,并且它的开发更多由商业公司主导。如果你正在使用 MySQL,MariaDB 是一个相对安全的替代品,特别是对于那些关心开源和社区支持的开发者和组织。

2025-07-29 20:29:43 124

原创 vi编辑器的使用

本文详细介绍了vi编译器的命令行模式、插入模式和底行模式,包括切换命令、编辑操作、光标移动、查找替换以及复制剪切功能。vi编辑器的使用-CSDN博客。

2025-07-29 17:39:33 252

原创 小智源码分析——音频部分(二)

上周从上图的getaudiocode()方法进去感受了一下底层小智的构造如何实现。所以用一个codec来接收我们所构造的音频对象。下来是用构造好的音频对象来调用音频初始化服务Initialize,因为启动函数Application函数的类中有audio_servicez_所以可以进行调用。这段初始化代码的核心作用是:1绑定并启动音频编解码器2配置音频数据流的格式和处理流程3按需初始化音频处理器和唤醒词检测模块4设置好各类回调,保证音频事件能及时通知到主程序5创建定时器,自动管理音频硬件电源。

2025-07-28 18:05:00 577

原创 AI小智源码分析——音频部分(一)

Write:16位音频数据 → 音量缩放 → 转32位 → 写入I2S(播放)。Read:从I2S读32位数据 → 右移还原16位 → 裁剪 → 输出(录音)。这两个函数实现了音频数据与I2S硬件之间的格式转换和音量控制,是AI小智音频输入输出的核心桥梁。来回裁剪是为了在不同的数据格式(16位/32位)、不同的处理需求(音量缩放、I2S对齐)之间安全、准确地转换数据。这样既能保证音频质量,又能兼容硬件和软件的不同要求。

2025-07-25 17:35:37 1012

原创 网络协议(四)网络层 路由协议

由于路由器的隔离,IP网络中无法通过广播MAC地址来完成跨网络的寻址,因此在网络层中只能使用IP地址来完成寻址。寻址的过程也是先寻找对应的IP,到达目标网络后,改为在目标LAN中通过数据链路层的MAC地址以广播方式寻址。要明确的是:一个路由器连接了多少个网络,就得有多少个网卡,每一块网卡都能获取一个对应所在网络的IP地址,他的路由表中就会有多少条路由信息。每次进行路由跳转的时候总是选择跳数最少的路径。,所以一个路由表中不止是只有自己本网络范围内的路由信息,还有其他与自身相连路由表的信息。

2025-07-21 22:14:15 205

原创 网络协议(三)网络层 IPv4、CIDR(使用子网掩码进行网络划分)、NAT在私网划分中的应用

确定这条数据中的源端为本地ip的9000端口,目的端为24.24.24.8888端口,首先,从主机a发送至路由器,路由器通过mask掩码与ip进行匹配,发现与本路由器网络号一致, 进行数据转发。数据发送到互联网中,经过层层转发,每条路由器拿到这条数据都会进行掩码匹配,看是否是属于24.24.24.0这个网络号,是的话就进行接收,从而找到这个云端服务器。ip协议里面就有源端地址和目的端地址,发送端就利用这来进行数据的返回,但是,有一个很严重的问题,如果每条数据每台主机都有一个这样的ip地址,

2025-07-21 20:24:58 227

原创 小智流程时序图

ESP32本地监听唤醒词(如“你好小智”),用户说出唤醒词,麦克风采集音频,ESP32检测到后通过功放播放提示音,并与服务端建立WebSocket连接。ESP32初始化硬件(麦克风、功放、LED等),连接WiFi和服务端。1. 核心交互流程总结。

2025-07-21 15:30:18 157

原创 AI小智组装

根据实习要求配置小智智能体提示词。

2025-07-21 11:10:31 144

原创 基于python和neo4j构建知识图谱医药问答系统

1.安装包::安装名为的第三方库👉 这个库是一个的 Python 实现,常用于高效的多关键词搜索。:指定 pip 使用,下载会更快、更稳定,尤其是在国内网络环境下。2.介绍✅是 Python 的一个第三方库,实现了(自动机算法)。👉 简单理解:如果你有,想要在里,用普通的for循环挨个匹配会很慢,而算法可以用的时间(接近线性时间)搞定,非常高效。

2025-07-17 12:05:14 227

原创 分别使用Cypher与python构建neo4j图谱

python与neo4j结合处理excel中的数据创建图谱。语法上有点类似 SQL,但面向。是 Neo4j 图数据库的。、查询图、更新或删除数据。查操作太多啦,直接参考。上一篇博客中的demo。(节点、边、属性)。

2025-07-17 09:49:15 343

原创 网络协议(二)传输层(UDP、TCP)

1、FIN请求只能表示主动关闭方不再发送数据,不代表不再接收数据,因此,被动关闭方收到FIN并进行确认后,还有可能会继续发送数据等待上层不再发送数据了,也要关闭套接字了才会发送FIN包,

2025-07-12 11:53:20 680

原创 Pycharm测试连接neoj4

本文介绍了使用py2neo连接Neo4j数据库并处理数据的完整流程。首先通过pip安装py2neo库,建立数据库连接并测试节点和关系的创建。然后演示如何处理Excel数据:使用pandas读取数据,提取购买方、销售方等节点信息,并建立它们之间的交易关系。最后通过自定义的DataToNeo4j类将处理好的节点和关系数据批量导入Neo4j数据库。文中还提到了Neo4j密码重置的方法,为开发者提供了完整的图数据库操作指南。

2025-07-11 18:34:44 144

原创 Neo4j启动

【代码】Neo4j启动。

2025-07-11 14:45:50 315

原创 C++——类型转换

标准C++为了加强类型转换的可视性,引入了四种命名的强制类型转换操作符:static_cast、reinterpret_cast、const_cast、dynamic_cast

2025-06-18 11:07:53 393

原创 C++——位图、布隆过滤器

位图就是使用一个比特位来表示一个数据是否存在布隆过滤器实际上就是 位图 + 使用多个比特位来映射一条数据

2025-06-17 15:47:01 363

原创 C++——Windows下的线程库

利用俩个线程分别处理俩个任务,分别执行对sum的++,但是结果发现最终的sum并不为200000.原因就是在线程进行运行的时候没有保证原子性。再进行资源共享的临界区前后进行加锁处理,利用mutex头文件中的锁来执行。使用atomic_int 定义出来的sum就在线程中自带原子性。thread(Fn,...Args) 创建线程执行Fn相关方法。,因此:即使线程参数为引用类型,在。线程中修改后也不能修改外部实参,因为。thread()创建线程。

2025-06-17 15:08:20 269

原创 C++——智能指针 weak_ptr

weak_ptr配合shared_ptr解决循环引用问题

2025-06-04 23:52:10 574 2

原创 C++——智能指针 shared_ptr

引用计数、资源共享

2025-06-04 18:42:31 413 1

原创 C++——智能指针 unique_ptr

禁止拷贝,无法共享!

2025-06-04 17:03:30 459

原创 C++——智能指针 auto_ptr

智能管理、权限转移。释放时会造成野指针的问题。

2025-06-03 11:17:55 241

原创 C++——异常

看下面这个代码,首先main函数中try f3,进入f3主体内部,f3中又调用f2,又进入f2中,f2中又调用f1,进入f1中,然后再f1中触发越界访问,跳出f1,返回到f2中看是否有catch接收,又退回到f3中看是否有catch接收,最终在main中发现有catch接收out_of_range异常。如果有一个块抛出一个异常,捕获异常的方法会使用 try 和 catch 关键字。catch: 在您想要处理问题的地方,通过异常处理程序捕获异常.catch 关键字用于捕获异常,可以有多个catch进行捕获。

2025-05-27 22:01:26 671

原创 Spring_Boot(一)Hello spring boot!

再main方法中调用 SpringApplication.run(HelloApplication.class,args);通过HelloController控制器调用@RequestMapping来进行http请求。新建项目加入 spring_web 依赖,生成如下 pom.xml文件,即为代码配置。RequestMapping方法需要在主函数中进行run调用,才可以执行。方法就可以直接在main函数中打印 hello world。再main方法中直接使用。

2025-05-19 23:35:00 295

原创 Java(基础)day02 输入、输出、数组、重载、递归

(5) (C++11起)std::string to_string(long double value);

2025-05-19 11:22:19 1056

原创 Java(基础) day01 初识Java

不同于 C 或 C++,Java 是一种强类型静态语言,并且它的基本数据类型具有固定的尺寸,不受底层操作系统的干扰。因此,在 Java 中,无论是在何种平台上执行,通常情况下,在现代 32 位或 64 位系统上,,此时JVM会将字节码转换成平台能够理解的形式来运行。是由字节码组成的平台无关、面向JVM的文件。Java中的int不管在什么环境下都是四个字节。float 类型在 Java 中占四个字节。double在任何系统下都占8个字节。short在任何系统下都占2个字节。long在任何环境下都是八个字节。

2025-05-16 16:01:51 399

原创 C++——哈希表

另外,最初的错误想法是让新桶直接将旧桶中的vector进行一次拷贝,把每个链表的第一个节点指针拷入就行,最后发现肯定不能这样,因为后续对桶进行扩容,取模的值也会发生改变,所以旧桶中的元素在新的模值下就会映射到新的结点中。开散列法又叫链地址法(开链法),首先对关键码集合用散列函数计算散列地址,具有相同地址的关键码归于同一子集合,每一个子集合称为一个桶,各个桶中的元素通过一个单链表链接起来,各链表的头结点存储在哈希表中。设有n个d位数,每一位可能有r种不同的符号,这r种不同的符号在各位上出现的频率不一定。

2025-04-28 17:50:39 974

原创 c++ unordered_map和map的区别

unordered中文翻译即 “无序的” ,自然地,unordered_map也就是不排序的map的意思。unordered_set与set和unordered_map与map是可以类比的,它们的区别大致是一样的。unordered_map在c++11加入的标准模板库,c++11以前是无法使用unordered_map、unordered_set、auto、stoi等标准模板的。unordered_map包含在unordered_map头文件中,即如果想要使用时,引入下面代码即可。

2025-04-24 11:01:41 273

原创 哈希(九)350. 两个数组的交集 II

请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。定义俩个map字典来进行计数操作,遍历dict1,在dict2中找到和它重复出现的交集元素,并捕获他们之间的较小值count,将该交集元素插入k次放入结果数组中。

2025-04-23 15:45:11 274

原创 哈希(八)349. 两个数组的交集 用unordered_set 替换 set

使用了set进行去重,然后利用俩个迭代器遍历俩个set,寻找重复的元素。也可以利用find接口来进行俩个set的求交集操作。输出结果中的每个元素一定是。[4,9] 也是可通过的。

2025-04-23 11:45:47 166

原创 哈希(七)961. 在长度 2N 的数组中找出重复 N 次的元素 简单

【代码】哈希(七)961. 在长度 2N 的数组中找出重复 N 次的元素 简单。

2025-04-23 11:34:46 185

原创 加法模拟 66. 加一

你可以假设除了整数 0 之外,这个整数不会以零开头。最高位数字存放在数组的首位, 数组中每个元素只存储。数组所表示的非负整数,在该数的基础上加一。加 1 得到了 9 + 1 = 10。因此,结果应该是 [1,0]。输入数组表示数字 4321。输入数组表示数字 123。输入数组表示数字 9。

2025-04-19 11:07:32 174

原创 1037. 有效的回旋镖 判断三点共线

定义为一组三个点,这些点。

2025-04-19 10:52:30 232

原创 哈希(六)原地哈希 442. 数组中重复的数据 中等

利用元素范围为1-n这样一个数据范围来暗示原地哈希的使用

2025-04-11 10:30:42 177

原创 dfs(二十六)77. 组合

【代码】dfs(二十六)77. 组合。

2025-03-22 15:23:45 193

原创 dfs(二十五)22. 括号生成

代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且。使用左右俩个全局变量也可以传参数作为括号是否合法的匹配标准。

2025-03-22 12:28:04 345

原创 dfs(二十四)47. 全排列 II

使用二维数组保存所有的全排列次序,并使用set容器来去重。给定一个可包含重复数字的序列。返回所有不重复的全排列。

2025-03-20 23:36:27 270

原创 dfs(二十三)1863. 找出所有子集的异或总和再求和

[5,1,6] 的异或总和为 5 XOR 1 XOR 6 = 2。- [1,3] 的异或总和为 1 XOR 3 = 2。- [5,1] 的异或总和为 5 XOR 1 = 4。- [5,6] 的异或总和为 5 XOR 6 = 3。- [1,6] 的异或总和为 1 XOR 6 = 7。每个子集的全部异或总和值之和为 480。- [1] 的异或总和为 1。- [3] 的异或总和为 3。- [5] 的异或总和为 5。- [1] 的异或总和为 1。- [6] 的异或总和为 6。

2025-03-20 22:46:57 521

Linux多线程-相关手写笔记

线程概念、线程控制、线程安全

2023-02-06

操作系统-银行家算法-银行家算法是操作系统的经典算法之一

银行家算法是操作系统的经典算法之一,用于避免死锁情况的出现。 它最初是为银行设计的(因此得名),通过判断借贷是否安全,然后决定借不借。 在银行中,客户申请贷款的数量是有限的,每个客户在第一次申请贷款时要声明完成该项目所需的最大资金量,在满足所有贷款要求时,客户应及时归还。银行家在客户申请的贷款数量不超过自己拥有的最大值时,都应尽量满足客户的需要。 用在操作系统中,银行家、出借资金、客户,就分别对应操作系统、资源、申请资源的进程。 每一个新进程进入系统时,必须声明需要每种资源的最大数目,其数目不能超过系统所拥有的的资源总量。当进程请求一组资源时,系统必须首先确定是否有足够的资源分配给该进程,若有,再进一步计算在将这些资源分配给进程后,是否会使系统处于不安全状态如果不会才将资源分配给它,否则让进程等待。 (1)互斥条件:并发进程所要求和占有的资源是不能同时被两个以上进程使用或操作的,进程对他所需要的资源进行排他性控制。 (2)不剥夺条件:进程所获得的资源在未使用完毕之前,不能被其他进程强行剥夺,而且只能由获得该资源的进程自己释放。 (3)请求和保持条件:进程已经至少保持了一个资源,但又提

2023-01-26

《二叉树及应用》 数据结构中二叉树使用

[问题描述]建立一个二叉树,并对其进行4种遍历(前中后层)。 [要求] 使用递归和非递归,计算二叉树中节点的个数,树的深度等。 [目的] 通过对二叉树的应用,熟练运用递归,栈和队列。 [实现提示] 二叉树中节点的结构如下: class BNode { char m_value; //二叉树中节点的值 BNode* m_left; //指向左子树指针 BNode* m_right;//指向右子树指针 }; 1、课程设计目的和内容 主要包括:需求分析,模块功能要求,分析理解问题,明确问题; 2、算法的基本思想 主要包括:概要设计,详细设计,数据结构定义,流程图 以及各个模块之间的关系; 3、测试数据 列出对于给定的输入所产生的输出; 4、源程序及文档说明 程序最终源码\程序最终设计文档 5、心得体会 课程设计的收获,遇到问题的思考过程,程序的调试能力,以及对于数据结构这门课程的思考 6、参考文献 二叉树先序中序后续遍历递归与非递归的实现、掌握栈和队列的用法。了解结构体内部嵌套之间的关系 二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构

2023-01-26

数据结构课程设计-最短路径

最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。 算法具体的形式包括: 确定起点的最短路径问题 - 即已知起始结点,求最短路径的问题。 确定终点的最短路径问题 - 与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。 确定起点终点的最短路径问题 - 即已知起点和终点,求两结点之间的最短路径。 全局最短路径问题 - 求图中所有的最短路径。 1、用邻接矩阵存储一张带权有向图。 2、对图进行从某一源点到其他各顶点的最短路径 3、输出最后结果(路径名称、路径长度)。 邻接矩阵建立包括:用二维数组存储信息。没有直达路径的为无穷。 用循环来判断最小值。 最终结果用一维数组存储。D[]存放源点到其他顶点的最短路径的长度,P[]存放该顶点最短路径的前驱顶点下标,visit[]为访问标识。初始全部值设为F,先把源点的标识设为T,后面每找到一个源点到其余顶点的最短路径,就将该顶点下标对应的标识置为T。直到全部顶点执行完毕。 输出一维数组D[

2023-01-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除