- 博客(6)
- 收藏
- 关注
原创 数据结构(c语言版):5.栈
<think>我们只需要根据用户的要求,生成一个不超过150字的文章摘要。用户提供了一篇关于栈的数据结构的详细文章,包括基本概念、顺序表和链表实现等。我们需要提炼核心内容,控制在150字以内。注意摘要需简洁,涵盖主题和要点,不展开代码细节。</think>栈是限定仅在栈顶进行插入/删除的线性表,遵循后进先出(LIFO)。常用顺序表或单链表实现,核心操作为入栈和出栈。顺序栈可动态扩容,链式栈则以头插头删实现。两者入出栈时间复杂度均为O(1),顺序栈因缓存命中率高且无内存碎片,通常更优。
2026-09-06 18:11:05
219
原创 数据结构(C语言版):4.带头双向循环链表
本文详细介绍了带头双向循环链表的实现与应用。该链表结构包含头节点(不存储有效数据)、双向指针(prev/next)和循环特性(尾节点指向头节点)。文章提供了完整的C语言实现代码,包括节点创建、初始化、插入/删除操作等核心功能,并演示了头插尾插等操作示例。通过对比顺序表和链表的优缺点,指出顺序表适合随机访问和尾插场景,而链表在动态内存管理和任意位置操作上更具优势。最后强调应根据实际需求选择合适的数据结构,二者在功能上形成互补关系。
2026-08-13 21:17:01
164
原创 数据结构(c语言版):3.单链表(一篇文章搞懂!)
本文介绍了单链表数据结构及其实现方法。首先分析了顺序表的缺点(插入删除效率低、扩容消耗大、空间浪费),引出单链表的优势。单链表通过指针连接非连续的节点,每个节点包含数据和指向下一节点的指针。文章详细讲解了单链表的12种基本操作实现,包括创建节点、插入删除(头/尾/指定位置)、查找、销毁等,并提供了完整的C语言实现代码(SList.h、SList.c、test.c)。重点说明了二级指针在链表操作中的必要性,以及如何通过指针操作高效维护链表结构。最后通过测试用例展示了链表的具体使用方法。
2026-05-20 23:18:59
511
原创 数据结构(c语言版):2.顺序表(保姆级教学,包教包会)
本文详细介绍了顺序表的概念与实现。首先解释了线性表的逻辑结构和物理结构区别,指出顺序表是用连续存储单元实现的线性结构。重点对比了静态和动态顺序表,动态顺序表通过指针和扩容机制实现灵活存储。文章详细讲解了动态顺序表的11个核心功能实现,包括初始化、增容、插入删除、查找和销毁等操作,并提供了完整的代码示例。最后给出了测试用例,展示了顺序表的基本使用方法。全文通过类比和代码示例,清晰地阐述了顺序表的原理与实现细节。
2026-05-10 15:25:07
532
原创 数据结构(c语言版):1.复杂度:从LeetCode189(轮转数组)引入(超超超详细版,保姆级教程)
本文从LeetCode轮转数组问题引入算法复杂度概念,详细讲解了时间复杂度和空间复杂度的定义与计算方法。通过多个案例演示了如何用大O渐进表示法分析代码执行效率,包括循环、递归等结构的复杂度计算。针对初始解法O(n²)时间复杂度过高的问题,逐步优化出O(n)时间复杂度的两种改进方案:使用额外数组的解法(空间复杂度O(n))和三次逆置的巧妙解法(空间复杂度O(1))。文章强调复杂度分析应关注算法在数据量趋近无穷时的增长趋势,并指出递归复杂度=单次复杂度×递归次数。最后分享了编程中需注意中英文标点符号等实用经验。
2026-04-20 20:20:41
553
原创 文件操作:新手初试遇到的小问题,及其解决
但是vs2026下面提示信息告诉我fopen可能不安全,得加上_CRT_SECURE_NO_WARNINGS,于是我加上。咨询了deepseek之后,它说可能是中文编码不匹配,让我试下英文success来进行验证。deepseek告诉我这个原因是:{vs自作聪明把简体中文那个编码改了,于是出现乱码。这次没有输出错误,但是程序并没有像我所想输出"打开文件成功",它输出了一堆乱码。刚开始是也有这种问题,但是我把源文件删了之后再新建一个就没有问题了。验证成功,文件打开与写入就是可以的,是中文汉字的原因。
2026-04-07 21:04:01
615
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅