![](https://img-blog.csdnimg.cn/536fd1a62e854df5bfc5d62eda51b5e7.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
文章平均质量分 94
数据结构初级和进阶,从0到1知识点详解。
Ggggggtm
编程是门艺术,我愿成为一名艺术家。
展开
-
【C++】位图与布隆过滤器(内含相关高频面试题)
本篇文章会对位图和布隆过滤器进行详解。同时还会给出位图和布隆过滤器相关的高频面试题与解答。希望本篇文章会对你有所帮助。位图和布隆过滤器是在计算机科学中常用的数据结构,它们分别具有不同的优点和缺点。空间效率高:位图使用的是位运算,在表示大量数据时,相比于传统的数组或哈希表等数据结构,可以极大地减少所需的存储空间。原创 2023-08-16 10:39:27 · 1313 阅读 · 41 评论 -
【C++】红黑树的原理与实现
本篇文章会对红黑树的实现原理进行详解。同时还会给出红黑树的C++实现代码。希望本篇文章会对你有所帮助。红黑树也是一种二叉搜索树,它的每个节点包含一个关键字(键值对)、左右孩子指针和父结点指针。每个节点还包含一个记录颜色的变量该变量用来表示该节点是红色节点还是黑色节点。RED,BLACK, _kv(kv){}表示颜色我们采用枚举的方式,以便整篇的代码比较整洁且易于理解。红黑树作为一种自平衡二叉搜索树,原创 2023-08-09 11:47:43 · 1485 阅读 · 71 评论 -
【C++】AVL(平衡二叉搜索树)树的原理及实现
本文将介绍AVL树的概念、实现以及性能分析。首先,我们将解释AVL树的结构和基本概念。然后,我们将详细讨论如何实现AVL树,并提供C++语言的示例代码。最后,我们将对AVL树的性能进行分析。AVL树是一种自平衡的二叉搜索树,其平衡性质使得在查找、插入和删除操作上都能保持较高的性能。通过限制树的平衡因子在一定范围内,AVL树能够在任何时刻保持树的高度平衡,从而避免了退化成链表的情况。原创 2023-08-07 11:16:16 · 1161 阅读 · 48 评论 -
排序算法终极篇之手撕常见排序算法
本编文章详解常见七大大排序(插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序),其中快速排序和归并排序递归实现是我们常见的思路,但是非递归实现的情况相对少见,理解起来也会有点难度,本篇文章会给出详解!详解+动图+代码帮助你理解到位,快进来学习吧!原创 2023-04-11 17:02:16 · 1369 阅读 · 33 评论 -
[数据结构] 用两个队列实现栈详解
我们上篇文章讲述了用两个栈实现队列,用过对上篇文章的学习后,我们再去学用两个队列实现栈就变得相对来说容易了很多。本篇文章会对用两个队列实现栈进行详解,希望会对你有所帮助。原创 2023-03-25 12:05:33 · 2845 阅读 · 33 评论 -
[数据结构] 用两个栈实现队列详解
在数据结构中,栈和队列是较为常见的两种数据结构。。那怎么用栈去实现队列呢?此问题在面试中也是高频出现的问题。本篇文章会给出详细解释。原创 2023-03-22 22:40:14 · 3951 阅读 · 37 评论 -
数据结构与算法之《带头双向循环链表》详解
本篇文章 对带头双向循环链表 的结构及概念进行了详细解析,不同模块的代码以及细节进行了解释,帮助你理解到位。本篇文章包含带头双向循环链表的整个代码。原创 2023-03-12 09:00:00 · 1236 阅读 · 28 评论 -
重点算法排序之堆排序(下篇)
我们本篇文章来详细讲述以下堆排序。同时给大家总结出各个排序的时间复杂度、空间复杂度、是否稳定。堆排序的主要内容有:最大堆(大顶堆)、最小堆(小顶堆)、通过孩子找父亲、通过父亲找孩子、向下调整算法建堆。下面我会给大家一一介绍。堆一般指的是二叉堆,顾名思义,二叉堆是完全二叉树或者近似完全二叉树。堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质。原创 2023-01-10 20:15:42 · 1298 阅读 · 28 评论 -
重点算法排序之快速排序、归并排序(上篇)
重点算法排序之快速排序、归并排序思路及代码实现。通过举例让你更易理解,帮助你理解到位。分支的思想就是把一个复杂的问题分解成很多相对较容易的问题,通过实现相对较容易的小问题后,一步一步返回完成复杂的大问题。分支的思想在快速排序和归并排序中就得到了很好的体现。快速排序和归并排序在排序中相对来说是十分重要的,我们应该反复练习,达到熟能生巧的地步。快速排序和归并排序就讲到这里,希望本篇文章对你有所帮助,后续会持续更新插入排序、希尔排序、选择排序、堆排序的详解。原创 2023-01-03 20:31:40 · 966 阅读 · 44 评论 -
数据结构与算法之《二叉树》详解
树的概念及结构解释,对节点的度、叶节点或终端节点、非终端节点或分支节点、双亲节点或父节点、孩子节点或子节点等概念解析。二叉树的概念及结构详解,二叉树的前序、中序、后序遍历的详解,求树中节点的个数,叶节点的个数,图文解析,帮助您理解到位!!!!!!原创 2022-12-08 10:46:56 · 1636 阅读 · 64 评论 -
数据结构和算法之《栈》详解
本文章详细讲述的栈的概念、结构和思路及代码的实现。零基础也可学!!!!!!详解包您理解到位!!!!!!同时头从栈中取出元素的例子解析,快来看吧。原创 2022-12-05 15:20:43 · 1408 阅读 · 35 评论 -
链表高频笔试的OJ题
一、合并两个有序链表 二、反转链表 三、分割链表 四、链表的回文结构 五、链表相交 六、环形链表 七、复制带有随机指针的复杂链表 OJ题目及解析和解题代码。通俗易懂,赶快进来看看吧!!!原创 2022-12-02 17:27:06 · 974 阅读 · 40 评论 -
数据结构与算法之《单链表》详解
通俗易懂,图文解析,模块化讲解!上面我们提到,定义结构体时该结构体包含一个可以存放数据的变量和一个能够指向下一个节点的指针,那么代码的实现就很简单了。通过上面我们看到:在定义结构体时,我们可以用typedef进行数据类型简化,同时方便我们后期更改存储类型的时候直接更改typedef处即可。同时我们也用typedef进行结构体类型简化,方便我们以后编辑代码。单链表的优缺点对比单链表优点单链表缺点按需申请空间,不需要了释放空间,更加合理的利用空间。每插一个数据,都需要连接后面的一个节点。原创 2022-11-29 12:55:16 · 1233 阅读 · 39 评论 -
数据结构基础入门之【顺序表】详解
数据结构顺序表的详细解释,及代码实现,保证你理解到位!!!!!!!在定义结构体时,我们可以用typedef进行数组类型简化,同时方便我们后期更改存储类型的时候直接更改typedef处即可。同时我们也用typedef进行结构体类型简化,方便我们以后编辑代码。{int size;};通过上面的代码我们可以发现,当我们不想存储int型数据时,我们只需把‘typedef int SQDataType’改为‘typedef double SQDataType’即可。极大的提高了代码的维护性。原创 2022-11-21 23:07:00 · 595 阅读 · 39 评论 -
时间复杂度和空间复杂度详解
零基础也可以学!!!!!!解释十分详细,配合例题,助你理解到位!!!!!!时间复杂度主要街量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间,在计算机发展的早期,计算机的存储容量很小。时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个西数,它定量描述了该算法的运行时间。从上面的表格我们不难看出,当N越大时,N*N对F(N)的影响最大,其他项的影响极小,甚至可以忽略不计原创 2022-11-15 19:53:34 · 1515 阅读 · 41 评论