数据结构与算法
文章平均质量分 95
这个专栏旨在由浅入深带领初学者了解什么是数据结构,以写出更好的程序
say_fall
与君共赴,万里征途
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
时间复杂度:容易算错?单看循环算是不对的!
本文介绍了时间复杂度的概念与计算方法,重点分析了二分查找的时间复杂度特性。时间复杂度是衡量算法效率的关键指标,反映算法执行时间随输入规模的增长趋势。文章指出常见误区,强调不能仅凭循环次数判断复杂度,并以二分查找为例说明对数阶O(log n)的特性。通过对比二分查找与线性查找的效率差异,展示了二分查找在大数据量下的优势,同时也指出其必须依赖有序数组的局限性。最后总结了二分查找的两种实现方式(左闭右闭和左闭右开)及其区别。原创 2025-11-26 10:31:54 · 624 阅读 · 1 评论 -
数据结构之顺序表:一款优秀的顺序存储结构
本文介绍了顺序表的基本概念与实现方法。顺序表是一种线性存储结构,分为静态和动态两种类型。静态顺序表容量固定,而动态顺序表可扩容。文章详细讲解了动态顺序表的实现,包括初始化、销毁、尾插、头插、头删、尾删等核心操作,并提供了完整的C语言代码示例。最后通过测试验证了顺序表的功能。完整代码已上传至Gitee仓库。原创 2025-10-22 16:23:54 · 861 阅读 · 33 评论 -
数据结构:为什么单链表总是学不透?核心原理与常见误区解析
单链表是一种通过指针将节点串联起来的线性数据结构,每个节点包含数据和指向下一节点的指针。本文结合代码实例,详细解析单链表的实现要点与常见错误。重点内容包括: 基础结构:节点由数据域和指针域组成,尾节点指针为NULL 创建要点:手动连接节点时需注意指针指向关系和边界条件 插入操作:必须使用二级指针修改头指针,避免值传递问题 删除陷阱:需处理空链表、单节点等特殊情况,防止内存泄漏 遍历技巧:正确设置循环条件确保完整访问所有节点。原创 2025-11-16 10:25:19 · 1149 阅读 · 22 评论 -
数据结构:手把手教你写 C 语言双向循环链表(内含分模块功能函数实现)
本文介绍了双向链表的实现方法,重点讲解了带头双向循环链表的数据结构设计及各功能接口的实现。通过List.h文件定义了链表节点结构体和操作接口,List.c文件具体实现了初始化、节点创建、插入删除等核心功能。关键技术包括哨兵位设计、指针四步调整法、内存管理和边界条件处理。相比单链表,双向链表通过前驱指针简化了操作,时间复杂度均为O(1)。代码采用模块化设计,通过类型抽象增强复用性,适合作为基础数据结构的学习案例。原创 2025-11-20 20:41:59 · 1107 阅读 · 17 评论 -
一文吃透 “栈”:从内存分区到数据结构的底层逻辑拆解
本文探讨了内存栈区与数据结构栈的关系及特性。内存栈区是线程专属的自动管理区域,采用LIFO机制存储函数调用参数、局部变量等临时数据,具有高效但容量有限的特点。数据结构栈是遵循LIFO规则的线性结构,可通过数组或链表实现,支持快速入栈、出栈等操作。两者虽应用场景不同,但共享先进后出的核心特性。栈结构广泛应用于函数调用、表达式求值、括号匹配等计算机科学领域,是程序执行和算法设计的基础支撑。原创 2025-12-04 08:44:00 · 1315 阅读 · 0 评论
分享