- 博客(23)
- 收藏
- 关注
原创 考研数据结构之图的遍历:深度优先搜索(DFS)与广度优先搜索(BFS)(包含真题及解析)
图的遍历是指从某个顶点出发访问图中所有顶点,且每个顶点仅被访问一次的过程。根据图是否连通,可能需要多次遍历才能访问所有顶点。DFS适合递归实现,常用于路径搜索、拓扑排序等。BFS基于队列实现,适用于最短路径问题。连通性判断:通过DFS或BFS遍历结果判断图是否连通。掌握这两种遍历算法及其与连通性的关系,可高效解决图相关的实际问题。后续文章将探讨图的最小生成树与最短路径算法。
2025-04-16 21:47:09
294
原创 考研数据结构之图(一)(包含真题及解析)
原理:用一个二维数组G[V][V]表示图,其中表示顶点i和j之间存在边;表示不存在边。对于带权图,G[i][j]可存储权值。特点优点:查询边是否存在的时间复杂度为O(1),适合稠密图。缺点:空间复杂度高,为O(V^2),稀疏图浪费空间。原理:为每个顶点建立一个单链表,存储与其相邻的所有顶点。特点优点:空间复杂度低,为O(V + E),适合稀疏图。缺点:查询边是否存在的时间复杂度为O(deg(v)),其中deg(v)为顶点的度。原理。
2025-04-16 21:41:11
456
原创 考研数据结构之树与二叉树的应用:哈夫曼树、哈夫曼编码与并查集
带权路径长度(WPL):树中所有叶子节点的权值乘以其到根节点的路径长度之和。哈夫曼树(最优二叉树):给定一组权值,构造的WPL最小的二叉树。特点权值越大的节点离根节点越近。哈夫曼树不唯一,但WPL相同。哈夫曼树是贪心算法的典型应用,需掌握构造步骤与WPL计算。并查集通过路径压缩和按秩合并实现高效动态连通性判断。两者在数据压缩(哈夫曼编码)和图算法(Kruskal)中均有重要实践价值。
2025-04-15 20:13:21
384
原创 考研数据结构之树与森林
存储结构:双亲表示法适合查找父节点,孩子兄弟表示法是转换二叉树的基础。转换规则:左孩子右兄弟是树与二叉树互转的核心逻辑。遍历等价性:树的先根遍历等同二叉树的先序,后根遍历等同二叉树的中序。掌握这些知识点,可高效解决树与森林相关的遍历、转换及存储问题。后续文章将探讨平衡二叉树与哈夫曼树等进阶内容。
2025-04-15 20:08:28
667
原创 考研数据结构之二叉树(二):二叉树的遍历与线索二叉树(包含真题实战)
普通二叉树中,空指针域(NULL)未被利用。为了提高遍历效率,可以通过线索化将空指针指向某些特定节点(如前驱或后继),从而减少遍历时对栈的依赖。这种经过改造的二叉树称为线索二叉树。先序线索二叉树:按先序遍历规则线索化。中序线索二叉树:按中序遍历规则线索化。后序线索二叉树:按后序遍历规则线索化。遍历是二叉树的核心操作,掌握递归与非递归实现方法至关重要。线索二叉树通过利用空指针提升遍历效率,是一种重要的优化手段。
2025-04-14 20:06:48
918
原创 考研数据结构之二叉树(一)(包含真题及解析)
二叉树(Binary Tree)是每个节点最多有两个子树的树形结构,子树分为左子树和右子树,其顺序不可颠倒。递归性:二叉树由一个根节点和两棵互不相交的左、右子树构成,子树本身也是二叉树。节点限制:每个节点的度(子节点数量)不超过2,且子树有明确的左右之分。特殊形态:二叉树可以是空树(节点数为0),或仅含根节点的单节点树。示例A/ \B C/ \D E该二叉树中,A为根节点,B为左子树根,C为右子树根,D和E是B的左右子节点。题目(改编自):高度为h的完全二叉树最多和最少分别包含多少个节点?
2025-04-14 19:59:12
738
原创 考研数据结构之串的模式匹配算法——KMP算法详解(包含真题及解析)
构建next数组:利用最长公共前后缀的思想,逐位计算模式串的next值。匹配过程:结合next数组优化匹配效率,避免重复扫描主串。建议考生在备考时,重点掌握手推next数组的方法和匹配逻辑,并结合代码实现加深理解。
2025-04-13 21:04:48
780
原创 考研数据结构精讲:数组与特殊矩阵的压缩存储技巧(包含真题及解析)
核心公式必须熟练推导:如对称矩阵、三对角矩阵的压缩公式,需掌握数学归纳法的推导过程而非死记硬背。真题训练侧重计算题:近5年考研中,70%的题目涉及地址计算或压缩映射,需反复练习典型例题。稀疏矩阵结合算法设计:重点关注三元组表与十字链表的转换算法,以及时间复杂度的优化策略。备考资料推荐《数据结构(C语言版)》严蔚敏:第5章数组与广义表各校历年真题汇编(如河海大学、山东科技大学)通过系统训练与真题解析,考生可显著提升解题效率,攻克数组与特殊矩阵的核心考点。
2025-04-13 20:58:13
1027
原创 考研数据结构之队列(Queue)详解(包含真题及解析)
/ 队头指针(指向第一个元素)int rear;// 队尾指针(指向下一个插入位置)int data;} QNode;// 队头指针// 队尾指针队列作为“先来先服务”的典型数据结构,是考研中必考的核心内容。循环队列的边界条件(满/空判断)链队列的指针操作细节(避免断链)常见算法应用(如层次遍历、BFS)注意:手写代码时务必清晰标注循环队列的指针移动逻辑,并强化练习链队列的出队边界条件(如最后一个结点的处理)!
2025-04-12 21:01:13
665
原创 考研数据结构之栈(Stack)详解(包含真题及解析)
100// 栈的最大容量int top;// 栈顶指针(通常初始化为-1)} SeqStack;int data;// 栈顶指针通过真题训练可以加深对栈的特性、应用场景及代码实现的理解。栈在括号匹配、表达式转换中的核心逻辑双栈配合解决复杂问题的思路(如队列模拟、最小栈)出栈序列合法性的快速判断方法(模拟栈操作)
2025-04-12 20:54:04
543
原创 考研数据结构之线性表的链式存储结构
操作逻辑:插入/删除时的指针修改顺序。复杂度分析:遍历查找的时间成本(O(n))。对比顺序存储:动态性与随机访问的权衡。通过真题训练,可加深对链表特性的理解,提升解题速度与准确性。
2025-04-11 20:47:15
560
原创 考研数据结构之线性表的顺序存储——顺序表(包含真题及解析)
顺序表是线性表的顺序存储结构,其核心特点是逻辑相邻与物理相邻。具体而言,顺序表通过一块连续的内存空间存储数据元素,元素之间的逻辑关系通过存储位置直接体现。例如,若线性表长度为n,则元素a_i的存储位置可通过基地址和元素大小直接计算得出。顺序表的优势支持随机访问,通过下标直接定位元素,时间复杂度为O(1)。存储密度高,无需额外指针空间。顺序表的局限性插入/删除操作需移动大量元素,时间复杂度为O(n)。预分配空间可能导致内存浪费或溢出。操作时间复杂度说明访问元素O(1)通过下标直接定位。
2025-04-11 19:53:00
762
原创 考研数据结构之线性表:从基础到实战(附核心考点解析)
线性表是具有相同数据类型的n个数据元素的有限序列逻辑特性:除首尾元素外,每个元素有且仅有一个直接前驱和直接后继。数据操作:包括初始化、插入、删除、查找、遍历等核心操作。线性表是考研数据结构的“基石”,其存储结构和操作思想贯穿整个学科。备考时需深入理解顺序表与链表的本质区别,熟练掌握核心算法的实现,并通过大量真题训练提升解题能力。记住:数据结构的学习离不开“动手写代码”,只有在实践中才能真正掌握指针操作、边界处理等细节,为后续复杂数据结构的学习打下坚实基础。
2025-04-10 12:56:20
1027
原创 JavaScript性能优化实战指南
A/B测试验证优化效果// 优化前// 优化后//通过持续监控Lighthouse性能评分(目标:LCP < 2.5s, FID < 100ms, CLS < 0.1),结合Chrome DevTools的Performance面板火焰图分析函数耗时,可系统化提升应用性能。
2025-04-10 12:28:48
457
原创 程序员做饭教程
程序员的工作通常具有高强度和长时间的特点,经常需要长时间坐在电脑前集中精力编写代码,这使得他们很容易忽视饮食健康。然而,健康饮食对于程序员来说至关重要。根据世界卫生组织的统计,不健康的饮食习惯是导致多种慢性疾病的主要原因之一,如心血管疾病、糖尿病和肥胖症等。程序员由于工作压力大、作息不规律,更容易受到这些疾病的威胁。例如,一项针对程序员的健康调查显示,约有60%的程序员存在饮食不均衡的问题,其中30%的程序员表示经常依赖外卖和快餐,这些食物往往含有高热量、高脂肪和高盐分,长期食用会对身体健康造成严重影响。
2025-04-09 18:53:40
911
原创 Vue.js组件开发零基础入门指南:从小白到实战
在前端开发中,组件是可复用的UI模块,它将HTML、CSS和JavaScript封装在一起,形成独立的、可重用的代码单元。例如按钮、卡片、对话框等都可以抽象为组件。Vue组件本质上是一个拥有自己逻辑(数据、生命周期、方法)与UI模板的对象,可以通过全局或局部方式注册使用。子组件通过$emit。
2025-04-08 20:33:35
913
原创 Spring AI 调用 DeepSeek:快速集成国产大模型的实战指南(包含本地部署方案)
通过 Spring AI 集成 DeepSeek,开发者可以快速构建智能对话、代码生成等应用。本文演示了从环境搭建到接口调用的完整流程,并提供了流式响应和本地部署的扩展方案。Spring AI 的统一 API 设计极大简化了模型切换,而 DeepSeek 的高性能和国产化特性则为业务场景提供了可靠保障。SpringAi文档DeepSeek 官网希望本文能帮助开发者快速上手 Spring AI 与 DeepSeek 的集成!如果有任何问题或优化建议,欢迎在评论区讨论。
2025-04-08 16:00:27
1047
原创 蓝桥杯C/C++组一天速成攻略(附代码模板+真题解析)
蓝桥杯注重代码实现能力熟记模板代码结构优先保证正确率再优化效率利用最后时间背诵常见算法边界条件(如二分查找的开闭区间)附:考前必看清单✅ 快速幂取模实现✅ 常见错误:数组越界、long long溢出✅ 特殊测试点:n=0/1的边界情况✅ 对拍脚本模板✅ 高精度运算模板本文代码均通过蓝桥杯官方训练系统验证,建议配合蓝桥杯真题集实战演练。最后祝各位取得好成绩!建议读者结合蓝桥杯官方训练系统和洛谷题库进行实战演练,重点练习近3年真题。
2025-04-07 20:02:41
1339
原创 CSS常用布局全解析:从传统到现代的6大核心方案
本文系统梳理CSS领域6种主流布局方案,涵盖传统技巧与现代特性,通过代码实例帮助开发者快速掌握不同场景下的布局策略。
2025-04-07 19:25:34
586
原创 SpringBoot3与Vue3前后端分离项目联调实战指南
本文详细讲解SpringBoot3与Vue3前后端分离开发时的联调技巧,涵盖环境搭建、跨域配置、Axios请求封装及常见问题解决方案,助你快速打通前后端协作链路
2025-04-07 19:15:33
621
原创 软件测试实验四:黑盒测试 - 因果图法及测试用例设计
程序根据输入的第一列(字符)和第二列(数字)判断是否修改文件。若第一列非A/B,输出错误信息N;若第二列非数字,输出错误信息M;若均正确,则修改文件。输入三个整数a、b、c,判断是否构成三角形及类型(等边、等腰、一般、非三角形)。以昆明学院软件工程专业软件测试实验四为例。关注博主及时获取后续更新。
2025-04-06 19:58:44
383
原创 新手入门:Spring Boot 3 + Vue 3 全栈开发实战
本文所有代码均在JDK 17 + Node 18环境下测试通过,遇到问题欢迎在评论区交流。Spring Boot 3要求最低JDK 17,请检查。时的解包规则,避免直接解构响应式对象。访问(确保配置中启用了控制台)中的Java版本配置。
2025-04-06 19:43:36
498
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人