![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 90
Achlorine
脚下的路更重要,我要开始与自己赛跑了。
展开
-
Java—[优先级队列]堆
我们学习过了队列的知识点知道了队列是一种先进先出的数据结构那么也就是说普通队列是按照时间进行的优先级,越早进去的越早出来,那么有没有一种数据结构可以改变优先级呢?比如说普通队列是进入时间作为优先级,越早的进入优先级越高,那么如果我想让值越小的越早出来该怎么做到呢?因此就有了下面这个数据结构也就是堆。或者叫优先级队列。原创 2024-02-29 16:36:16 · 981 阅读 · 0 评论 -
数据结构——java实现顺序表
首先什么是顺序表呢?先看一下官方概念顺序表(Sequence List)是一种线性表的实现方式,它是一种顺序存储结构,即数据元素存储在一块连续的存储空间中。顺序表通过数组实现,数组的每个元素存储一个数据元素,元素之间的顺序与其在数组中的位置相对应。这里听着感觉非常的绕,那有没有我们现在正在使用的列子呢?有的其实我们现在用的数组就是一个顺序表。那么我们按照数组的概念去套入一下顺序表的概念。首先要是连续的空间得是顺序存储其次存储元素的位置和其内存中的地址一一对应。原创 2024-02-22 14:50:18 · 1041 阅读 · 0 评论 -
力扣电话号码的组合
首先呢我们可以先看一下假如说是23这两个数字的话2代表的是abc 3代表的是def,那么我们以此为列的话得出当首字符是a的时候组合就是ad,ae,af同样的b和c也是如此在这里我们可以看到a组合完毕之后我们还需要将b和c组合也给列出来,那么也就是说我们可以利用函数递归这样一个特性去逐步的遍历他们每个字符串,也就是说最外层是一个for循环然后for循环里面是一个函数递归,相当于又是一个循环外面的循环负责遍历2这个数字代表的字符内层函数遍历则是负责遍历3所代表的每个字符,那么我们来进行一下代码实现吧。原创 2024-01-16 20:57:37 · 402 阅读 · 0 评论 -
红黑树RBTree
这里呢我们可以思考一个问题就是红黑树在插入新节点的时候默认的颜色应该是什么?其实呢红色和黑色都是可以的因为我们到最后可以通过像avl树那样旋转调整,那么红色和黑色哪个好一些呢?这里请同学门思考一下红黑树的条件中哪两个条件比较重要呢?当然是第一每条路径的黑色节点数目相同第二红色节点的孩子一定是黑色节点。原创 2023-09-14 22:31:48 · 69 阅读 · 1 评论 -
AVL树(平衡二叉搜索树)
首先先说一下AVL名字的由来,AVL的名字来自于它的发明者G. M. Adelson-Velsky 和E. M. Landis,也就是这两位来自俄罗斯的大佬,那么我们为什么要学习AVL树呢?那是因为我们平常用的二叉搜索树在一些极端情况下它的查找会变成o(N)的时间复杂度,也就是斜二叉树的情况,他们发明了一种解决上述问题的方法:当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之差的绝对值不超过1(需要对树中的结点进行调整),即可降低树的高度,从而减少平均搜索长度。原创 2023-09-07 23:37:19 · 71 阅读 · 0 评论