
简介
该用户还未填写简介
擅长的技术栈
未填写擅长的技术栈
可提供的服务
暂无可提供的服务
【数据结构】C语言实现单链表(附完整代码)
在前面的文章中,我们学习了顺序表,它虽然支持随机访问,但在头部和中间插入删除时需要移动大量元素,效率较低。那么有没有一种数据结构可以解决这个问题呢?链表(Linked List)应运而生!它通过“指针”将零散的内存块串联起来,插入删除不需要移动元素,只需修改指针指向即可。本文将带你从零实现一个单链表(Singly Linked List),包含:✅ 结点的定义与创建✅ 头插、头删、尾插、尾删✅ 任
【C语言数据结构】堆的实现与堆排序详解(附完整代码)
在之前的数据结构学习中,我们掌握了线性表(顺序表、链表)、栈和队列。这些结构处理数据时,要么按插入顺序(栈/队列),要么按位置(线性表)。但是否存在一种结构,能自动将数据按优先级(如大小)组织,每次都能高效地取出“最大”或“最小”的元素?堆(Heap)正是为此而生!它是一种特殊的完全二叉树,通常用数组实现,能在O(log n)时间内插入和删除极值,在O(1)时间内获取极值。它也是优先队列的底层实现
【C语言数据结构】双向链表(带头循环双向链表,附完整代码)
在前面两篇文章中,我们分别学习了顺序表和单链表。顺序表:支持随机访问,但头部和中间插入删除效率低(O(n))。单链表:头插头删效率高,但只能单向遍历,且尾插尾删仍需O(n),另外删除结点时必须知道前驱结点。那么有没有一种链表,既能双向遍历,又能高效地在任意位置插入删除呢?双向链表(Doubly Linked List)就是答案!如果再给它加上带头结点和循环的特性,就变成了我们今天要实现的“带头循环
到底了







