- 博客(15)
- 收藏
- 关注
原创 数据结构 —— 字典树
Trie 树的每个节点代表一个字符(或空),从根节点到某一叶子 / 标记节点的路径拼接起来,构成一个完整的字符串;节点额外存储 “是否为单词结尾” 的标记,用于区分 “前缀” 和 “完整单词”。
2025-12-15 10:40:19
971
原创 数据结构 —— 并查集
并查集是一种高效处理动态连通性问题的数据结构,主要用于元素分组和连通性判断。其核心操作包括查找(Find)元素所属集合的根节点,以及合并(Union)两个集合。通过路径压缩和加权标记优化,可显著提升性能。路径压缩使查找路径上的节点直接指向根节点,加权标记则在合并时保持树结构平衡。典型应用包括判断图的连通性和Kruskal最小生成树算法。并查集通过初始化(Init)、查找(Find)和合并(Join)三个基本操作,实现了高效的动态集合管理。
2025-12-08 11:07:14
731
原创 数据结构 —— 图
本文系统介绍了图数据结构的基本概念、分类、存储方式和遍历算法。主要内容包括:1. 图的基本概念(顶点、边、度、路径等)和分类(有向/无向、加权/无权等);2. 两种主要存储方式:邻接矩阵(适合稠密图)和邻接表(适合稀疏图)的实现与特性;3. 深度优先搜索(DFS)和广度优先搜索(BFS)的算法原理、实现代码及应用场景;4. 两种遍历方式的性能分析与对比,包括时间复杂度、空间复杂度和适用场景。文章通过代码示例和比较表格,清晰展示了图这一重要数据结构及其核心算法的实现与应用。
2025-11-30 23:08:08
962
原创 数据结构 —— 树
本文系统介绍了树结构的基本概念、存储实现及遍历方法。首先阐述了树的定义、术语(如根节点、叶子节点、度等)和基本性质。其次详细讲解了三种存储结构:双亲表示法(高效查找父节点)、孩子表示法(快速访问子节点)和孩子兄弟表示法(将多叉树转为二叉树)。重点剖析了二叉树的五种形态、四种遍历方式(先序/中序/后序/层次)的递归与非递归实现,并给出Java代码示例。最后讨论了线索二叉树的构建原理和树/森林与二叉树的转换规则。全文通过理论结合实践的方式,完整呈现了树这一重要数据结构的核心知识点与应用场景。
2025-11-24 12:07:10
1008
原创 数据结构 —— 队列
摘要:队列是遵循FIFO(先进先出)原则的线性数据结构,包含入队、出队等基本操作。主要实现方式有数组(循环队列)和链表(链式队列),各有特点。Java中提供了Queue接口及多种实现类:LinkedList支持动态扩容,ArrayDeque高效双端操作,PriorityQueue实现优先级排序,BlockingQueue支持线程阻塞。队列广泛应用于任务调度、消息队列、广度优先搜索等场景。根据单线程/多线程、优先级等不同需求,可选择合适实现类。
2025-11-16 23:03:50
899
原创 数据结构 —— 栈
本文详细讲解了栈的概念、实现及应用。栈是一种先进后出(LIFO)的线性数据结构,支持压栈、弹栈等基本操作。文章分别介绍了基于数组和链表的两种栈实现方式,对比了它们的优缺点。此外,还介绍了Java中Stack类的替代方案ArrayDeque,并探讨了栈在递归调用、括号匹配、表达式求值等场景中的实际应用。所有栈操作的时间复杂度均为O(1),具有高效的性能特性。
2025-11-04 16:36:45
840
原创 数据结构 —— 堆
堆是一种基于完全二叉树的数据结构,用于高效获取数据集中的最值。主要分为大根堆(父节点大于子节点)和小根堆(父节点小于子节点),通过数组层序存储,父子节点索引可通过公式计算。核心操作包括堆化(向上/向下调整)、构建堆(O(n))、插入(O(logn))和删除堆顶(O(logn))。典型应用包括优先队列、堆排序(O(nlogn))和Top-K问题(O(nlogk))。堆的优势在于极值操作高效,但不稳定且需注意数组扩容问题。选择大/小根堆取决于具体需求(取最大/最小值)。
2025-10-26 23:08:08
1234
原创 Java集合体系 —— Map篇
本文深入解析Java集合框架中三大Map实现类的核心特性与适用场景。HashMap基于哈希表实现,提供O(1)时间复杂度的高效查找,但不保证顺序;LinkedHashMap在HashMap基础上增加双向链表维护插入/访问顺序,适合需要保持顺序的场景;TreeMap采用红黑树结构,支持键的自然排序或定制排序,适合需要有序存储和范围查询的场景。文章详细对比了三者的底层结构、性能特点和适用场景:HashMap是默认首选,适合纯键值对查找;LinkedHashMap平衡性能与顺序需求;TreeMap则专注于有序存储
2025-10-19 21:32:13
1215
原创 Java集合体系 —— Set篇
本文深入解析Java集合框架中的Set接口及其三大实现类。Set接口作为Collection的子接口,核心特性是不重复、无索引,与List接口形成鲜明对比。HashSet作为最常用实现,基于HashMap实现高效去重(O(1)时间复杂度),适合纯去重场景;LinkedHashSet在HashSet基础上通过双向链表维护插入顺序,适合需要保留元素添加顺序的场景;TreeSet基于红黑树实现自动排序,支持自然排序或自定义比较器。文章从底层结构、源码实现到性能特点进行系统分析,为开发者选择合适Set实现提供理论依
2025-10-12 23:36:59
981
1
原创 Java 集合体系 —— List 篇
本文深入解析Java集合框架中List接口的三种主要实现类:ArrayList、LinkedList和Vector。ArrayList基于动态数组实现,随机访问性能优异(O(1)),但插入删除需要移动元素;LinkedList采用双向链表结构,插入删除高效(O(1))而随机访问较慢(O(n));Vector是线程安全的动态数组实现,但性能较差。通过源码分析各实现类的核心操作机制,帮助开发者根据具体场景(如访问模式、线程安全需求)选择最合适的List实现。
2025-09-29 00:04:16
893
原创 第二十六周:序列化和反序列化
本文对比了Java原生序列化与Redis序列化的实现方式。Java序列化主要通过Serializable接口、ObjectOutputStream和ObjectInputStream实现对象持久化和网络传输,需注意serialVersionUID、transient字段等细节。Redis则通过RedisTemplate实现序列化,默认使用JDK序列化,但推荐使用Jackson2JsonRedisSerializer等方案以提升可读性和效率,还支持自定义序列化器实现特殊需求。两者在序列化实现机制和应用场景上存
2025-06-15 22:41:45
226
原创 第二十四周:Redis(一)
Redis是一款高性能内存键值数据库,支持丰富数据结构(String、Hash、List等)和10万+级QPS。核心特性包括内存存储、持久化(RDB/AOF)、原子操作及集群高可用。典型应用场景涵盖缓存加速、分布式锁、实时统计、消息队列和排行榜。优化建议涉及内存管理(数据结构选择)、防雪崩策略(差异化过期时间)及混合持久化方案(RDB+AOF)。Redis以其高速读写和多功能性成为互联网架构的核心组件之一。
2025-06-01 11:02:07
253
原创 第十八周:Git使用和swagger文档的配置
● .apis(RequestHandlerSelectors.basePackage(“com.example.demo.controller”)):指定扫描的包路径,Swagger 只会为该包下的控制器类生成 API 文档。● .paths(PathSelectors.any()):指定要生成文档的路径规则,PathSelectors.any() 表示所有路径的 API 都会生成文档。在实际使用中,还可以根据具体情况使用更多高级命令。● .title(“示例API文档”):设置 API 文档的标题。
2025-04-21 17:14:51
912
原创 第十五周:SpringMVC学习
SpringMVC:围绕 MVC(Model-View-Controller)设计模式 构建的,旨在将应用程序的不同职责分离,从而提高代码的可维护性和可扩展性。1.DispatcherServlet:作为 SpringMVC 的前端控制器,它负责接收所有的 HTTP 请求,并将请求分发给合适的处理器进行处理。2.HandlerMapping:负责将请求映射到具体的处理器(Controller)。前端控制器,负责接收所有请求并将其分发给相应的处理器(Controller)。
2025-03-23 10:57:11
579
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅