数组(顺序存储)基本原理
本章讲解数组的底层原理,区分静态数组与动态数组。通过手动实现动态数组的增删查改,深入理解其基于静态数组的运行机制,掌握随机访问、数据搬移与扩容等核心概念,为学习更复杂数据结构打下基础。
队列/栈基本原理
本文介绍队列和栈的基本原理。二者均为“操作受限”的数据结构:队列仅能在队尾入队、队头出队,遵循“先进先出”(FIFO);栈只能在栈顶进行插入和删除,遵循“先进后出”(FILO)。底层可由数组或链表实现,核心API包括push、pop、peek和size,不同语言命名可能不同,但功能一致。后续将用代码实现这些结构。
单/双链表代码实现
本文详解双链表与单链表的自定义实现,重点讲解三大核心技巧:1)同时持有头尾节点引用,提升尾部操作效率;2)使用虚拟头尾节点简化边界处理;3)正确理解Java链表删除中的内存释放机制。代码涵盖增删查改等基本操作,结构清晰,适合学习参考。
数组(顺序存储)基本原理
本章讲解数组的底层原理,区分静态数组与动态数组。静态数组是连续内存空间,支持O(1)随机访问,但增删效率低;动态数组基于静态数组封装,提供自动扩容与常用API,使用更便捷。我们将手动实现动态数组的增删查改,深入理解其运行机制,为后续学习栈、队列等结构打基础。
数据库
本内容系统讲解MySQL核心知识,涵盖char与varchar区别、事务ACID特性及隔离级别、索引结构(B+树)、聚簇与二级索引、回表查询、索引创建与失效场景,并结合explain执行计划、慢SQL定位及SQL优化实践,全面解析数据库性能调优关键点。
动态数组代码实现
本文详解动态数组的实现要点:支持自动扩缩容(2倍扩容、1/4缩容)、索引越界检查(区分元素与位置索引)、防范内存泄漏(删除时置null)。代码涵盖增删查改基本操作,帮助理解底层原理与时间复杂度。
链表(链式存储)基本原理
本文介绍了单链表与双链表的基本结构及操作。相比力扣中简单的单链表,实际编程中的链表多为支持泛型的双链表,具备prev和next指针,可双向遍历。链表无需连续内存,增删高效,无容量限制,但不支持随机访问。文章详解了链表的查、改、增、删操作,尤其通过虚拟头节点简化边界处理,并对比单双链表差异,为后续实现完整链表API打下基础。
MongoDB索引知识
MongoDB索引提升查询效率,避免全表扫描。支持单字段、复合、地理空间、文本及哈希索引,采用B-Tree结构,优化相等匹配、范围查询与排序操作。合理使用索引可显著提升性能。