数据结构
文章平均质量分 93
张张努力变强
佛系又向上
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二叉树——链式结构,来体验函数递归的暴力美学!
本文介绍了二叉树链式结构的实现方法,重点讲解了前序、中序、后序遍历的实现原理和代码示例。文章详细阐述了计算二叉树节点个数、叶子节点个数、第k层节点个数以及求二叉树高度/深度的递归算法。此外,还介绍了二叉树查找、销毁等基本操作,以及进阶的层序遍历和判断完全二叉树的方法,其中层序遍历通过队列实现。文章最后提供了判断完全二叉树的算法思路和实现代码。原创 2025-12-01 20:25:39 · 1048 阅读 · 15 评论 -
二叉树与堆:从概念到实战全解析
本文系统介绍了树和二叉树的基本概念与实现。首先阐述了树的概念、性质及相关术语,重点讲解了二叉树的结构特性与存储方式(顺序/链式)。在实现部分,详细分析了堆(顺序结构二叉树)的创建、调整算法(向上/向下)及核心操作(入堆/出堆),并通过堆排序和TOP-K问题展示了实际应用。文章最后提供了时间复杂度分析和完整代码实现,为后续学习二叉树链式结构奠定了基础。全文兼顾理论讲解与实践指导,适合数据结构学习者参考。原创 2025-11-27 21:20:53 · 1022 阅读 · 13 评论 -
栈和队列——精选题目
本文介绍了四个LeetCode题目关于栈和队列的实现方法: 有效的括号; 用队列实现栈; 用栈实现队列;设计循环队列 每个题目都提供了完整的数据结构定义和操作函数实现,包括初始化、销毁、入队/入栈、出队/出栈等核心操作。原创 2025-11-23 22:23:06 · 924 阅读 · 12 评论 -
数据结构_栈和队列
本文介绍了栈和队列两种线性数据结构。栈采用后进先出原则,通过数组实现入栈出栈操作;队列采用先进先出原则,通过链表实现队列入队出队操作。文章详细讲解了栈和队列的结构定义、初始化、销毁、插入删除等基本操作的代码实现,并提供了完整的C语言实现代码。栈的实现重点在于数组的动态扩容,队列的实现关键在于维护头尾指针。两种数据结构各有特点,栈适合处理函数调用等场景,队列则适用于任务调度等应用。文章最后还预告了后续将介绍相关算法题目。原创 2025-11-22 16:11:23 · 1547 阅读 · 4 评论 -
数据结构——双链表
本文详细介绍了双向链表(带头双向循环链表)的实现方法。首先对链表进行了分类说明,重点讲解了双向链表的代码实现。通过代码示例展示了双向链表的核心操作实现,包括节点定义、初始化、增删查改等13个关键功能。文章还提供了完整的代码文件(List.h、List.c、test.c)供参考,并分享了实现过程中的注意事项。最后指出双向链表虽然操作方便,但需根据实际需求权衡空间占用问题,合理选择数据结构。全文通过理论讲解与代码实践相结合的方式,系统地介绍了双向链表的实现与应用。原创 2025-11-21 20:09:05 · 868 阅读 · 11 评论 -
链表——精选题目
本文总结了9种链表题目的解决思路和代码实现:1.移除元素;2.反转链表;3.找中间节点;4.合并有序链表;5.链表分割;6.回文判断;7.相交链表;8.环形检测;9.入环节点。提供了力扣和牛客网题目链接及C++/C实现代码。原创 2025-11-20 19:37:34 · 1028 阅读 · 7 评论 -
数据结构——单链表
本文详细介绍了单链表的数据结构及代码实现。首先阐述了链表的特征和构成(数据域+指针域),并对比了与顺序表的差异。接着通过代码展示了单链表的完整实现,包括创建节点、打印链表、头插尾插、头删尾删、查找元素、指定位置插入删除等核心操作。重点讲解了需要二级指针的场景(如头插/头删)及边界条件处理。最后提供了完整的头文件、实现文件和测试代码,并预告后续将分享更具挑战性的链表题目。全文兼顾理论讲解与实践编码,适合数据结构学习者参考。原创 2025-11-16 20:47:26 · 1344 阅读 · 7 评论 -
顺序表——练习题
题目链接:27. 移除元素 - 力扣(LeetCode)题目描述给你一个数组nums和一个值val,你需要移除所有数值等于val的元素。元素的顺序可能发生改变。然后返回nums中与val不同的元素的数量。假设nums中不等于val的元素数量为k,要通过此题,您需要执行以下操作:更改nums数组,使nums的前k个元素包含不等于val的元素。nums的其余元素和nums的大小并不重要。返回k。原创 2025-11-14 16:30:19 · 738 阅读 · 0 评论 -
数据结构——顺序表
本文系统介绍了顺序表的数据结构实现方法。首先定义了顺序表的基本概念,区分了静态和动态顺序表的区别。重点阐述了动态顺序表的实现过程,包括初始化、增删改查等核心功能:1)详细讲解了尾插、头插两种插入方式;2)介绍了尾删、头删等删除操作;3)实现了指定位置插入删除功能;4)提供了查找和扩容机制。文章采用模块化设计方法,将顺序表功能分解为多个函数实现,并给出了完整的代码示例。最后强调了顺序表作为线性表基础数据结构的重要性,为后续学习更复杂的链表等数据结构奠定基础。原创 2025-11-14 00:47:03 · 1338 阅读 · 12 评论 -
数据结构——算法复杂度:提升代码效率的关键
本文系统介绍了数据结构算法中的复杂度分析,包括时间复杂度和空间复杂度的概念、计算方法与应用实例。文章首先阐述了数据结构与算法的基本定义,然后重点讲解了复杂度分析的核心要点:使用大O表示法评估算法性能、常见时间复杂度类型(O(1)、O(n)、O(n^2)、O(logn)等)及递归函数的复杂度计算。通过典型例题演示了不同算法的复杂度推导过程,并针对轮转数组问题提出了三种时间复杂度的解决方案(O(n^2)、O(n)、O(1)),突出了优化算法效率的重要性。文章为系统性学习算法复杂度提供了清晰的逻辑框架和实用案例。原创 2025-11-10 20:05:45 · 897 阅读 · 5 评论
分享