
数据结构
文章平均质量分 87
可涵不会debug
阿里云开发者社区专家博主,第十五届蓝桥杯国三获得者,优快云新星创作者。目前正在学习C++,Linux相关知识。承蒙各位大佬的厚爱!
展开
-
【STL】之 list 使用方法和模拟实现
之前我们分别手撕了string类和vector类,今天我们来跟list类打打交道~原创 2024-08-01 11:45:29 · 838 阅读 · 0 评论 -
手撕排序之快速排序
本文主要介绍了如何用递归算法(霍尔、挖坑、双指针)和非递归算法(借助栈)来手撕快排。原创 2023-10-09 16:10:14 · 344 阅读 · 48 评论 -
二叉树经典例题
本文主要讲解了关于二叉树的简单经典的例题。因为二叉树的特性,所以关于二叉树的大部分题目,需要利用分治的思想去递归解决问题。原创 2023-10-05 10:34:01 · 666 阅读 · 71 评论 -
手撕排序之堆排序
本文主要讲解了堆排序如何利用完全二叉树实现原创 2023-09-17 10:27:55 · 407 阅读 · 73 评论 -
C语言插入排序
本文主要讲解插入排序中的直接插入排序和希尔排序。原创 2023-09-05 15:37:33 · 3406 阅读 · 0 评论 -
树和二叉树基础
本文主要讲解了树和二叉树的一些基本知识~原创 2023-09-01 17:03:56 · 1142 阅读 · 68 评论 -
数据结构之队列详解(包含例题)
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。原创 2023-08-14 16:19:16 · 2262 阅读 · 70 评论 -
手撕数据结构之栈+例题
栈:一种特殊的线性表,其只允许元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出的原则。如同子弹夹,我们进行添子弹和出子弹,很形象。:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。:栈的删除操作叫做出栈。出数据也在栈顶。接下来,我们以数组栈的形式去模拟。原创 2023-08-10 21:40:58 · 944 阅读 · 33 评论 -
C语言单链表OJ题(较难)
本文讲解了关于单链表OJ,题目有些许难度,包含链表分割、相交链表、回文链表、环形链表原创 2023-08-07 12:29:28 · 1406 阅读 · 51 评论 -
C语言单链表OJ题(较易)
在数据结构的新篇章里,注意的小细节更多,最好将能考虑的情况都要考虑到,不然调试起来比较麻烦。原创 2023-08-06 09:06:43 · 614 阅读 · 50 评论 -
C语言手撕单链表
在讲解单链表的各个接口前,很有必要讲解以下单链表的物理内存到底是如何存储的,先掌握这个,接下来的讲解就会更容易理解头结点指向的地址就是第一个结点的总地址第一个结点的指针域指向的是第二个结点的总地址,所以分为两个地址一个是结点的总地址,另一个是结点总地址里面的next指针存放的指针域的地址,这个指针域的地址又指向了下一个结点的总地址。看下面的图解内存存储的数据,实际中是没有箭头的,把箭头去掉,才是内存中真正的存储模式。原创 2023-08-01 22:30:54 · 1245 阅读 · 55 评论 -
C语言手撕顺序表
顺序表开启了数据结构的的序章,顺序表算是很简单的数据结构了,从此我们需要敲一部分代码,编译一次,不能一股脑的输出,结果编译发现好多个bug,需要写一部分,编译一部分,这样才更加的有持续性。我们一般使用动态顺序表,因为静态顺序表的数组大小固定的,而动态可以根据我们需求的不同去在线扩容,所以接下来的文章围绕如何实现动态顺序表来讲解。因为动态内存,每当我们插入新的数据时,总需要将存储有效数据的大小增加,当我们开辟的空间不够时,就需要扩容,利用realloc函数的性质。在数组上完成数据的增删查改。原创 2023-07-30 17:13:59 · 3062 阅读 · 55 评论 -
算法的时间复杂度、空间复杂度如何比较?
本篇文章讲解了如何求解出时间复杂度和空间复杂度,并且利用他们求解题目。原创 2023-07-26 14:49:27 · 3385 阅读 · 79 评论