- 博客(37)
- 收藏
- 关注
原创 从连接到隔离:SSH 工具 + PyCharm 远程连接服务器及环境配置事项
本文介绍了服务器环境管理与开发工具的使用指南。主要内容包括:1)通过XTerminal等SSH工具连接服务器后,建议使用conda创建独立的Python虚拟环境以避免多人共用时的版本冲突;2)使用FileZilla进行本地与服务器的文件传输;3)PyCharm配置远程服务器解释器实现代码在服务器环境运行;4)强调虚拟环境的重要性,包括本地开发时通过Anaconda创建隔离环境防止系统污染。文章还对比了SSD与HDD的存储选择,并提供了PyCharm切换不同conda环境的说明。
2026-06-20 21:38:49
274
原创 【数据结构16】图:基于邻接矩阵、邻接表实现DFS/BFS
本文系统介绍了图的基础知识和存储遍历方法。主要内容包括:1) 图的基本概念(有向/无向图、完全图、连通性等);2) 图的两种存储方式(邻接矩阵和邻接表)及其适用场景;3) 详细阐述了邻接矩阵和邻接表的深度优先搜索(DFS)与广度优先搜索(BFS)算法实现,包含核心代码和注释。文章结构清晰,从理论到实践完整呈现了图这一重要数据结构的核心内容
2026-06-11 15:07:45
337
原创 【数据结构15】哈夫曼树构建、编码(附手绘图解)
本文介绍了Huffman树的基本概念和编码实现方法。主要内容包括:1)基本知识:路径、带权路径长度、WPL、等长/变长编码、前缀码等概念;2)Huffman树创建过程,通过选择权值最小的两个节点合并构建;3)Huffman编码实现,采用从叶子节点回溯到根节点的方式生成前缀码。文章提供了完整的C语言代码实现,包括节点选择、树构建和编码生成函数。Huffman编码是一种最优变长编码,能有效压缩数据且保证无歧义解码。
2026-05-25 18:13:53
262
原创 【数据结构14】并查集:QuickUnion、QuickFind、路径压缩
本文介绍了并查集(Union-Find)算法的两种实现方式:QuickFind和QuickUnion。QuickFind通过直接维护组ID实现快速查找(O(1))但合并较慢(O(N));QuickUnion采用树结构实现更高效的合并和查找(O(logN)),并提出了基于size和rank的优化方法避免退化。文章还提供了C语言代码实现,包括查找元素下标、判断连通性和合并操作等核心功能。最后提到路径压缩优化技术,能进一步提升算法效率。该算法适用于处理元素分组和连通性问题。
2026-05-20 21:16:28
327
原创 【数据结构13】平衡二叉树插入/删除节点,从跪下到站起来
本文详细讲解了平衡二叉树(AVL树)的插入和删除操作。插入操作包括:1)按照二叉搜索树规则找到合适位置插入新节点;2)更新节点高度并检查平衡因子;3)根据失衡情况(LL/LR/RR/RL)进行旋转调整。删除操作同样需要:1)找到待删除节点;2)处理度为0、1、2的不同情况;3)删除后更新高度并重新平衡。文章通过代码示例和图示,详细说明了前驱节点的查找方法及各种旋转操作的实现逻辑,完整呈现了AVL树维护平衡性的核心机制。
2026-03-03 23:47:06
501
原创 【数据结构12】平衡二叉树旋转:pre和node的故事还没结束,这次轮到树自己转了
本文介绍了平衡二叉树的概念及其旋转操作。首先解释了普通二叉树可能退化成链表的问题,导致查询效率从O(logn)降至O(n),因此引入平衡二叉树来保持左右子树高度差不超过1。文章详细讲解了四种旋转操作:RR型(右右型)采用左旋、LL型(左左型)采用右旋,以及需要复合操作的RL型(右左型)和LR型(左右型)。对于RL/LR型,需要先对子树旋转转换为RR/LL型,再整体旋转。通过代码示例和图示展示了旋转的具体实现步骤,包括节点高度更新等关键操作。
2026-02-27 07:18:25
479
原创 【数据结构11】线索二叉树:pre、node的虐恋,看完不许哭
本文介绍了线索二叉树的概念与实现方法。线索化旨在利用二叉树中n+1个空指针域,通过标记位(lTag/rTag)将其指向节点的前驱或后继,从而优化存储空间并简化遍历操作。重点阐述了中序线索二叉树的实现过程:通过递归中序遍历,当节点左/右指针为空时,将其线索化为前驱/后继节点,并用标记位区分指针指向的是孩子还是线索。文章通过详细代码示例和节点2、4、5的模拟过程,展示了线索化的具体步骤,包括pre指针的动态更新和节点间线索关系的建立。线索二叉树能有效提升遍历效率,是中序遍历的高效实现方式。
2026-02-25 05:57:11
1000
原创 【数据结构10】满/完全二叉树、顺序/链式存储
本文系统介绍了二叉树的基本概念与性质。主要内容包括:1)满二叉树与完全二叉树的定义及特点;2)任意二叉树的四个重要性质,包括节点数量计算公式、叶子节点与度为2节点的关系等;3)二叉树的两种存储方式(顺序和链式);4)深度优先(前序、中序、后序)和广度优先遍历方法;5)如何根据遍历结果重构二叉树,重点讲解了前序+中序、后序+中序的组合方法。文章通过公式推导和图示相结合的方式,清晰阐述了二叉树的核心知识点。
2026-02-22 08:24:02
1753
原创 【数据结构09】画废五张图才搞懂的链式队列,这两个坑你别踩
本文介绍了链式队列的实现方法,包括节点结构定义和基本操作接口。链式队列由头节点(包含front、rear指针和计数器)和队列节点(包含数据和next指针)组成。重点阐述了入队操作(尾插法维护FIFO特性)、出队操作(front后移删除元素)以及空间释放的实现细节。特别强调了单向链表中front只能向后移动的特性,指出若采用头插法将导致删除困难。通过rear指针右向插入既满足先进先出原则,又简化了删除操作。最后提供了完整的代码实现和详细的操作流程说明。
2026-02-21 23:25:28
234
原创 【数据结构8】别让“假溢出”坑了你——详解顺序队列
本文介绍了循环队列的实现方法。通过结构体定义队列数据结构,包含数据数组和头尾指针。详细说明了初始化、入队和出队操作:初始化时头尾指针置0;入队时判断队列是否已满(尾指针+1等于头指针),未满则插入元素;出队时判断队列是否为空(头尾指针相等),非空则取出元素。采用牺牲一个存储空间的方法来区分队列满和空的状态,简化了判断条件。若申请10个空间,实际可用范围为0-9。文章最后强调了入队出队操作前都需要进行状态检查的重要性。
2026-02-21 05:32:37
352
原创 【数据结构7】链式栈实现
本文介绍了链式栈的实现方法。首先定义了节点结构和头结构,说明将栈顶指针封装在结构体中的必要性。接着列出了链式栈的主要接口:创建、释放、压栈和弹栈。然后详细说明了各接口的具体实现:创建时初始化空栈;压栈时新建节点并更新栈顶;弹栈时保存栈顶元素并释放节点;释放栈时循环删除所有节点。实现过程中强调了指针操作和内存管理的重要性,通过结构体封装解决了函数传值问题。文章最后附有示意图说明节点插入过程。
2026-02-19 19:50:06
511
原创 【数据结构6】栈的四种形态:递增/递减,满栈/空栈深度解析
本文详细介绍了栈的数据结构实现方法。首先将栈分为满栈和空栈两种类型,并区分递增和递减两种操作方向。文章给出了栈的结构体定义,包含数据数组和栈顶指针。重点阐述了递增空栈的接口实现方法,包括初始化(top=0)、压栈(先赋值后移动指针)、弹栈(先移动指针后取值)等操作。同时说明了判断栈空(top=0)和栈满(top=MaxStackSize)的条件判断方法。文章通过清晰的代码示例展示了栈操作的具体实现逻辑,为理解栈数据结构提供了实用参考。
2026-02-19 17:07:27
1255
原创 【数据结构5】硬核!彻底搞懂双向循环链表(附源码)
本文介绍了双向循环链表的实现方法。首先定义了节点结构DNode和链表结构DList,包含指向前驱和后继的指针。然后详细说明了接口实现:1)初始化接口initDList创建空链表;2)插入操作包括头插insertDListHeader和尾插insertDListRear,通过addDNode统一处理指针修改;3)删除操作delDList通过修改前后节点指针实现;4)释放接口releaseDList遍历释放所有节点。重点强调了指针修改顺序应从后往前,避免丢失引用。每个操作都配有详细说明和图示,帮助理解双向链表的
2026-02-18 23:20:19
1054
原创 【数据结构4】单向循环链表实现
创作不易,大家的支持就是我坚持下去的动力!身体安康,万事顺遂。3.1 初始化接口(表在栈上)实现。排序人生,复杂度永远是 O(1)愿你遍历链表,归来仍是少年;祝你:岁岁常欢愉,年年皆胜意。遍历二叉树,不丢一个节点;如果我的内容对你有帮助,请。二、单向循环链表的头结构。3.2 头插/尾插实现。3.4 删除链表元素。
2026-02-16 20:27:31
382
原创 【数据结构3】带头指针·单向链表实现
本文介绍了带头指针链表的结构设计与实现方法。主要内容包括:1) 定义了包含头指针和节点计数的链表结构体;2) 详细实现了初始化、头插、任意位置插入、删除、遍历和销毁等核心接口;3) 采用虚拟头节点(dummy)技术简化操作;4) 提供了完整的测试用例。文章通过C语言代码展示了带头指针链表的各项操作,重点说明了虚拟头节点在处理边界情况时的优势,以及如何正确维护链表结构和节点计数。所有接口实现均考虑了内存管理和错误处理,并附有详细注释说明。
2026-02-15 21:52:39
255
原创 【数据结构2】带头结点·单向链表实现
本文介绍了带头结点单向链表的实现方法。首先定义了链表节点结构和头结构,然后设计了6个核心接口:创建链表、头插、任意位置插入、删除元素、遍历链表和释放空间。文章详细说明了每个接口的具体实现逻辑,包括内存分配、节点操作和边界条件处理。实现中使用了指针操作和动态内存管理技术,确保链表操作的正确性和效率。该实现为线性表的基本操作提供了参考方案,适用于需要动态数据结构的应用场景。
2026-02-15 21:09:26
395
原创 【数据结构1】实现线性表
本文介绍了顺序表(SEQTable)的实现方法,主要包括类型重定义、表头设计和接口实现。首先通过typedef定义了Element_t类型和SEQTable_t结构体表头,包含数据指针、位置和容量。然后设计了在堆上申请空间的接口函数,包括创建表、释放表、压入元素、插入元素和删除元素。具体实现步骤包括:1)创建表头时分配内存空间;2)压入元素时检查并扩容;3)任意位置插入元素时移动后续元素;4)删除元素时查找并覆盖移动。文中详细说明了内存管理、扩容机制和元素操作的具体实现逻辑,并配有示意图帮助理解元素移动过程
2026-02-14 18:04:06
443
原创 【GitLab】自建代码托管平台
摘要:本文详细介绍了在虚拟机上安装GitLab的完整流程。首先确保虚拟机配置(4G内存+4G以上swap分区),通过快照备份系统。接着固定Linux IP地址,配置主机映射,使用FileZilla上传rpm安装包。重点讲解了通过修改脚本或官网步骤安装GitLab-ce,包括依赖安装、服务初始化和启动过程。最后说明如何获取初始密码并通过浏览器访问GitLab。文中提供了从网络配置到服务部署的完整解决方案,适合需要搭建GitLab服务的技术人员参考。
2026-02-03 21:02:00
455
原创 从零到一:手把手安装VMware并创建第一台CentOS虚拟机
本文提供VMware虚拟机安装配置详细教程,包含三个主要步骤:1)VMware软件下载安装(官网注册下载,注意网络问题);2)CentOS 7镜像获取(推荐国内镜像源);3)虚拟机创建与配置(包括分区设置、网络模式选择等)。教程特别强调安装过程中的注意事项,如NAT网络模式优势、分区方案建议(/boot 1G、swap 2G、/ 17G)以及安装完成后的账户设置。文中还提醒用户在遇到加载问题时检查网络或重启电脑,并建议保持耐心完成整个安装过程。
2026-01-30 22:04:26
1241
原创 Git从删库到跑路
本文介绍了Git版本控制工具的基本操作和进阶应用。主要内容包括:1)Git基础操作如初始化仓库、添加文件、提交修改等;2)分支管理包括创建、切换和合并分支;3)GitHub远程仓库操作如push/pull/clone;4)SSH免密登录配置;5)IDEA集成Git的方法;6)GitHub项目克隆和Gitee同步技巧。文章以简明实用的方式讲解了Git的核心功能,适合初学者快速掌握版本控制工具的基本使用。
2026-01-28 08:40:20
942
原创 【JavaSE】方法带参、对象数组、方法参数传递
本文介绍了Java中带参方法的语法和使用,包括带参构造方法的定义与调用,以及无参构造方法的处理规则。通过LeapYear类示例展示了带参方法在闰年判断中的应用。同时讲解了对象数组的创建与使用方式。最后区分了基本数据类型和引用数据类型在方法参数传递中的差异:基本类型传递值拷贝,修改不影响原变量;引用类型可修改对象属性但无法改变原引用指向。文中包含多个代码示例,如Add类和Person类,直观展示了参数传递的特性。
2025-12-30 00:39:03
388
原创 【MySQL】MySQL多表查询完全指南:从笛卡尔积到内外连接、子查询
本文介绍了数据库查询中的笛卡尔积和关联条件。首先解释了笛卡尔积的基本概念及其对数据库性能的影响,并提供了避免笛卡尔积的方法。然后详细说明了三种主要关联条件:INNER JOIN(内连接)仅返回匹配行;LEFT JOIN(左外连接)返回左表所有行,右表无匹配则为NULL;RIGHT JOIN(右外连接)返回右表所有行,左表无匹配则为NULL。文章通过SQL示例演示了每种连接的使用场景和查询结果,包括查找无成绩学生、统计学生成绩数量等实用案例。
2025-12-02 23:05:17
803
原创 【MySQL】SQL必备函数指南:数学、字符串、日期与条件判断
本文系统介绍了SQL中常用的四类函数:数学函数(如ABS、ROUND等)、字符串函数(如CONCAT、SUBSTRING等)、日期时间函数(如NOW、YEAR等)以及条件判断函数。重点讲解了IF函数的两种形式(IF和IFNULL)和CASE WHEN语句的两种用法(简单CASE表达式和搜索CASE表达式),并提供了具体应用示例。这些函数在数据处理、条件判断和结果格式化等方面具有重要作用,是SQL查询中不可或缺的工具。
2025-12-02 20:06:59
841
原创 【MySQL】DML与DQL核心语法详解:数据库操作完整指南
本文介绍了SQL中的DML(数据操作语言)和DQL(数据查询语言)核心语法。DML部分详解了INSERT、UPDATE、DELETE/TRUNCATE语句的使用场景和差异,以及WHERE子句的各种运算符。DQL部分重点讲解了SELECT查询语句,包括排序(ASC/DESC)、去重(ALL/DISTINCT)、聚合函数(COUNT/SUM/AVG等)和分组过滤(HAVING)。最后通过学生管理案例,综合演示了从建表、增删改数据到多维度统计分析的全流程SQL操作。全文包含了大量实用示例,帮助掌握SQL数据库操作
2025-11-12 06:06:00
789
原创 【MySQL】高效学习MySQL:掌握这些核心指令,轻松玩转数据库与数据表(附引擎选型指南)
本文介绍了MySQL数据库的基本操作和重要概念。首先讲解了数据库的增删改查语法,包括创建、修改、删除数据库等操作。然后详细说明了MySQL中的列类型,包括数值类型、日期时间类型和字符串类型,以及各种列的修饰属性。文章重点对比了MyISAM和InnoDB两种存储引擎的特点和使用场景,InnoDB适用于需要事务支持的现代Web应用,而MyISAM更适合读密集型场景。最后演示了创建InnoDB引擎表的方法,以及修改表结构、删除表等操作。全文涵盖了MySQL数据库操作的基础知识,为数据库学习提供了实用参考
2025-11-11 20:05:52
783
原创 【微信小程序】全局配置、网络数据请求、声明式导航、编程式导航
本文介绍了微信小程序开发中的关键配置和功能实现。主要内容包括:1.全局配置文件app.json的使用,涵盖窗口样式、tabBar设置等基础配置;2.网络数据请求的实现,包括域名配置和GET请求方法;3.声明式导航的实现方式,包含tabBar和非tabBar页面的跳转方法;4.编程式导航的具体应用,通过wx.switchTab()和wx.navigateTo()方法实现页面跳转。文章通过代码示例和效果演示,详细说明了各项功能的配置和使用方法,为小程序开发者提供了实用的技术参考。
2025-11-08 14:57:36
1256
原创 【微信小程序】WXML模板语法-条件渲染、列表渲染、WXSS模板样式
摘要:本文介绍了微信小程序开发中的条件渲染和列表渲染技术。条件渲染部分详细讲解了wx:if、wx:elif、wx:else等指令的使用方法,以及hidden属性和block标签的应用。列表渲染部分重点说明了wx:for循环渲染组件结构的方式和使用wx:key提升性能的技巧。最后简要介绍了WXSS样式中的rpx单位、样式导入以及全局样式与局部样式的区别和使用场景。这些技术点都是微信小程序开发中的重要内容,掌握它们可以更高效地进行小程序开发。
2025-10-30 22:28:59
1440
原创 【微信小程序】小程序宿主环境中的WXML模板语法
本文介绍了微信小程序开发中的WXML模板语法核心内容:1.数据绑定部分讲解了Mustache语法的三种应用场景(内容绑定、属性绑定、运算绑定),并通过随机数计算等实例演示具体用法;2.事件绑定部分详细说明常用事件类型、事件对象属性,重点区分target与currentTarget的差异,通过+1计数器案例演示事件处理流程;3.补充介绍了事件传参格式、bindinput语法及小程序API的三大分类(事件监听API、同步API、异步API)。全文通过代码示例和运行效果图,系统讲解了小程序数据驱动视图的核心机制和
2025-10-27 23:42:13
1121
原创 【微信小程序】宿主环境-组件
本文介绍了小程序开发中常用的基础组件及其使用方法。主要包括:1)view组件作为基础容器,通过flex布局实现元素排列;2)scroll-view组件实现可滚动视图区域;3)swiper组件创建轮播图及其常用属性;4)text组件的文本选择功能;5)rich-text组件渲染富文本内容;6)button组件的多种样式和image组件的不同mode模式。文章通过代码示例详细展示了各组件的基本用法和样式配置,帮助开发者快速掌握小程序基础组件的使用技巧。
2025-10-26 21:36:01
998
原创 Java字符排序、二分查找与二维数组应用
本文介绍了Java中数组的常用操作。第一部分讲解了字符排序和二分查找算法,包括使用Arrays.sort()对字符/字符串数组排序,以及通过二分查找在有序数组中快速定位元素的方法。第二部分探讨了二维数组的定义和使用,包括固定长度数组、初始化数组和不规则数组的创建方式,并给出了音乐信息管理系统和学生信息统计系统两个实际案例,演示了如何通过二维数组存储和操作结构化数据。文章最后预告了Java五子棋的实现内容
2025-10-24 23:50:49
149
原创 Java数组核心操作三剑客:拷贝、扩容与排序实战详解
本文将深入探讨Java数组的三大核心操作:数组拷贝的底层原理、动态扩容的实现技巧,以及冒泡排序的算法思想。通过丰富的代码案例,带你掌握数组操作的底层逻辑。
2025-10-23 23:41:00
410
原创 Java跳转标签与数组内存全解析:从“break target”到JVM内存模型
本文介绍了Java中标签和数组的核心知识点。标签用于标记循环位置,通过break 标签名可跳出指定外层循环。数组定义支持两种初始化方式:直接赋值和使用new关键字。内存层面,数组变量存储的是堆内存地址,相当于“遥控器”。重点解析了数组重新赋值时内存地址变更的机制。文章强调理论结合实践,建议通过编码调试深入理解内存运作原理。
2025-10-23 19:56:39
653
原创 Java二重循环:从九九乘法表到菱形与质数筛选
二重循环是指循环嵌套循环的结构,常用于处理多维数据。本文介绍了多种二重循环应用场景:1)实现九九乘法表;2)打印5×5星号矩形(实心/空心);3)构建三角形(上三角/倒三角);4)组合上下三角形成菱形;5)查找2-100的质数。通过外层循环控制行数,内层循环处理每行内容,可完成各种规律性图形输出和数值计算任务。
2025-10-22 23:55:43
682
原创 Java循环结构全攻略·从入门到超市商品结算系统
想掌握Java循环的奥秘吗?本文将生动讲解while、do-while、for三大循环结构,通过从基础求和到复杂菱形图案的实战案例,带你彻底理解循环的执行逻辑和应用场景。
2025-10-22 15:37:33
350
原创 Java基础核心概念全解析:从流程控制到循环结构
本文将系统讲解Java基础中的五个核心概念:流程图规范、逻辑短路原理、switch结构细节、Scanner输入验证以及循环结构要素。通过清晰的图示和代码案例,助你夯实Java基础。
2025-10-20 23:04:37
719
原创 Java从变量到类型转换的完全指南
本文是Java基础入门系列的开篇,将系统讲解Java的基本数据类型、变量声明、命名规范、运算符使用以及类型转换机制。通过清晰的对比表格和实战代码案例,帮你夯实Java编程的基石。
2025-10-18 17:02:34
398
原创 图论基础:从回路识别到四种存储结构全解析
本文系统讲解图论中的回路概念(欧拉环路与哈密尔顿环路)以及图的四种存储方式:邻接矩阵、邻接表、十字链表和邻接多重表,通过清晰的图示和对比分析,帮助读者建立完整的图存储知识体系。
2025-10-11 09:35:59
402
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅