数据结构
文章平均质量分 94
数据结构
埃伊蟹黄面
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
单链表:C语言中的“火车”或“寻宝游戏”
单链表摘要 单链表是一种非连续、非顺序的线性存储结构,通过结点中的指针链接实现逻辑顺序。本文介绍了不带头单向不循环链表的实现方法,主要包括: 结点结构定义:包含数据域和指向下一结点的指针 基本操作实现: 创建结点:动态内存分配并初始化 尾插:找到链表尾部插入新结点 头插:在链表头部插入新结点 尾删:释放尾结点并处理前驱指针 头删:释放头结点并更新头指针 重点解决了操作中的边界条件问题,如空链表处理、单结点情况等。相比顺序表,单链表在插入删除操作上具有O(1)时间复杂度优势,且无需预先分配固定空间。原创 2025-03-28 22:40:01 · 818 阅读 · 0 评论 -
指针与递归的共舞:C语言链式二叉树精讲
本文介绍了链式结构二叉树的实现及其四种遍历方式。二叉树结点包含数据域和左右孩子指针,通过递归方式创建二叉树。前序遍历顺序为根-左-右,中序遍历为左-根-右,后序遍历为左-右-根。文中详细分析了每种遍历的递归过程,并给出了示例代码和运行结果。二叉树的链式结构相比堆限制较少,主要通过递归实现遍历操作而非插入删除。这些遍历方式是二叉树基础操作的核心内容。原创 2025-04-13 21:21:45 · 1190 阅读 · 0 评论 -
顺序结构二叉树:数组与树的“二象性”
本文介绍了树和二叉树的基本概念及存储结构。树是一种非线性数据结构,由根节点和多棵互不相交的子树组成,具有层次性。二叉树是树的一种特殊形式,每个节点最多有两个子节点,且子树有左右之分。文章详细讲解了树的相关术语(如度、深度、路径等)和二叉树的特点,包括满二叉树和完全二叉树的定义及区别。最后介绍了用顺序结构实现二叉树(堆)的方法,包括堆的结构定义、初始化、销毁和插入数据等操作,指出顺序存储更适合完全二叉树以避免空间浪费。原创 2025-04-12 19:10:56 · 1125 阅读 · 0 评论 -
C语言排序算法的底层逻辑与性能对比
本文介绍了两种常见的排序算法:插入排序(包括直接插入排序和希尔排序)和选择排序(直接选择排序)。直接插入排序通过逐个插入有序序列实现排序,时间复杂度为O(N^2);希尔排序使用增量分组策略改进插入排序,时间复杂度约为O(N^1.3)。选择排序通过每次选择最小/最大值进行交换来实现排序。文章详细说明了各算法的实现步骤、代码示例和时间复杂度分析,并通过示例展示了排序前后的数据变化。原创 2025-04-23 16:44:27 · 1060 阅读 · 0 评论 -
还在单向遍历?双链表让你的数据“进退自如”
摘要 本文介绍了带头双向循环链表的实现原理和基本操作。该数据结构通过在每个节点中存储前驱和后继指针,实现了O(1)时间复杂度的头插、头删、尾插、尾删等操作。文章详细讲解了链表节点的结构定义、空节点创建、头结点初始化方法,并重点分析了尾插和头插操作的指针链接顺序。此外还讨论了尾删操作前需要判断链表是否为空的特殊情况(仅剩头结点时)。通过图示和代码示例,展示了如何正确维护双向循环链表的指针关系,确保操作的高效性和正确性。原创 2025-03-29 15:03:46 · 1081 阅读 · 0 评论 -
经典面试题精讲:C语言实现随机链表的复制(附最优解)
本文探讨了循环队列的设计与实现方法。循环队列是一种首尾相连的环形结构,具有固定空间、队头删除、队尾插入等特点。文章比较了链表和数组两种实现方式,指出数组实现更节省内存且简单。重点分析了数组实现时的关键问题:如何区分队列空和满状态。解决方案是通过多开辟一个空间,利用(rear+1)%(k+1)==front判断满状态,而front==rear表示空状态。文章提供了完整的代码实现框架,包括结构体定义、初始化、插入删除操作及判断空满状态的方法。这种实现方式避免了额外计数器变量的使用,提高了空间效率。原创 2025-04-11 22:03:51 · 1235 阅读 · 0 评论 -
C语言中的“叠盘子”与“排队伍”:栈与队列深入浅出
本文介绍了栈的基本概念和实现方法。栈是一种后进先出(LIFO)的线性表,只能在固定端(栈顶)进行插入和删除操作。文章对比了数组和链表两种实现方式,指出数组更适合作为栈的底层结构,因其内存消耗更小且时间复杂度更低(O(1))。详细讲解了栈的结构定义、初始化、入栈、出栈、取栈顶元素等基本操作的具体实现,并分析了各种操作的性能要求。最后还介绍了获取栈中有效数据个数和销毁栈的方法。通过代码示例展示了栈的基本操作过程,包括空间扩容机制和边界条件处理。原创 2025-04-08 12:09:06 · 1024 阅读 · 0 评论 -
C语言中的“动态数组”:顺序表的实现与奥秘
本文介绍了顺序表的基本概念和实现方法。顺序表是一种线性结构,底层通过数组实现,分为静态和动态两种类型。静态顺序表空间固定,而动态顺序表可以通过内存函数动态调整空间大小。文章详细讲解了动态顺序表的各种操作实现,包括尾插、头插、尾删、头删等基本操作,以及指定位置前后的数据插入和删除操作。每个操作都配有详细的代码实现和逻辑分析,通过图示展示了数据移动的过程。动态顺序表的优势在于可以灵活调整空间大小,避免内存浪费,适用于不确定数据量的场景。文章通过3个文件的模块化设计,清晰地展示了顺序表的具体实现过程。原创 2025-03-18 17:50:21 · 947 阅读 · 0 评论
分享