数据结构
文章平均质量分 92
数据结构学习总结
2的n次方_
2024年度博客之星,腾讯云创作之星,华为云云享专家,阿里云乘风者计划专家博主
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
高阶 DS——手撕平衡二叉搜索树
在二叉搜索树的基础上,加入一个平衡因子来描述左子树和右子树的高度差//平衡因子,右子树高度 - 左子树高度。原创 2024-10-29 08:48:25 · 1001 阅读 · 10 评论 -
手撕红黑树
每个节点不是红色就是黑色根节点为黑色如果一个节点为红色,那么它的两个孩子节点为黑色(一条路径上不能有两个连续的红色节点)对于每个节点,从该节点及其所有后代所在的叶子节点的简单路径上,均包含相同数目的黑色节点每一个叶子节点都是黑色的这里节点除了包含节点的值,左子树,右子树和父亲节点的引用外,还需要添加颜色的属性//新创建的节点默认是红色的颜色只有红色和黑色,可以使用枚举类来定义节点的颜色RED,BLACK。原创 2024-10-30 08:36:39 · 1796 阅读 · 0 评论 -
【数据结构】map&set详解
HashMap的底层也是哈希表,和之前的HashSet不同,HashMap中,当插入的key相同时,第二次插入会覆盖原来的value值,同时,如果存储的是自定义类型的对象还需要重写HashCode和equals方法。TreeMap和TreeSet底层一样,都是红黑树,根据键进行排序,排序规则也是类似的,对于非数值等类型,可以实现Comparable接口,指定比较规则,也可以传入比较器。当用HashSet实例化对象时,由于底层结构是哈希表,所以元素是无序的,而TreeSet底层是红黑树,是有序的。原创 2024-08-05 11:28:11 · 2960 阅读 · 101 评论 -
【数据结构】哈希表&二叉搜索树详解
对二叉搜索树和哈希表进行了模拟实现,并介绍了哈希函数的使用,哈希冲突的避免和解决方法,通过使用线性探测,二次探测,哈希桶等方法解决冲突原创 2024-07-29 21:30:29 · 2933 阅读 · 88 评论 -
【数据结构】优先级队列(堆)从实现到应用详解
介绍了优先级队列PriorityQueue的模拟实现和应用,还有堆的一些其他应用,并附上了面试题,堆排序,top k问题原创 2024-07-19 19:47:44 · 3010 阅读 · 100 评论 -
【数据结构】二叉树全攻略,从实现到应用详解
介绍了二叉树的概念,类别以及基本性质,并实现列先序,中序,后序遍历二叉树,以及常用方法的实现原创 2024-07-17 07:34:44 · 2015 阅读 · 30 评论 -
【数据结构】栈和队列的深度探索,从实现到应用详解
本文详细介绍了栈和队列的基本内容,并通过顺序表实现了栈,通过双向链表实现了队列以及数组实现循环队列的常用方法,干货满满原创 2024-07-15 07:10:00 · 2726 阅读 · 93 评论 -
【数据结构】链表从实现到应用,保姆级攻略
介绍并实现了单向链表和双向链表,并对Java中的LinkedList的一些方法进行了演示,还有LinkedList的遍历,与ArrayList的对比和二者的应用场景原创 2024-07-10 21:10:44 · 4209 阅读 · 97 评论 -
【数据结构】初识集合&深入剖析顺序表(Arraylist)
介绍了Java中集合的一些框架,单列集合的一些接口,以及顺序表ArrayList原创 2024-06-16 14:13:17 · 2341 阅读 · 57 评论 -
位运算的妙用 1
这个方法呢,巧妙的利用了下标的关系来进行求解,因为是1~1000的数字加上一个重复的数字,那么 arr[ i ] 中所记录的元素作为数组helper 的下标 ,也不用担心数组越界的问题,最终helper数组中最后一个位置并没有被赋值,为0,其他位置都被赋值为了1,而因为有一个重复的元素,所以helper。看到这道题,大家会考虑怎么做,我第一次想出的答案就是直接求和,然后减去真正的1~1000数字的和,最后得到的那个数字就是所求,直接暴力求解,哈哈,但是具有局限性,所以就来给大家分享一个很巧妙的方法。原创 2024-01-02 11:04:41 · 795 阅读 · 0 评论 -
递归介绍及练习
盘子的数量大于 1 时,把除了最下面的盘子看作一个整体,以 C 为辅助塔,移动到目标塔 B ,再将蓝色的盘子放入C,此时最大的蓝色盘子正确归位,每次放置时,这三个柱子谁是开始塔,目标塔,辅助塔都是在不断变化的,这个需要仔细去思考明白。通俗点来讲呢,比如说刚开学,你不知道校长在哪,就去问另一个同学,他也不知道,他就再去问另一个同学,就这样一直循环,终于有个同学知道,他就把答案告诉上一个同学,最终,这个答案顺着这个链条给到了你。1 ~ 2 ,以及为1的时候的情况,也就是递归的出口。原创 2024-01-05 18:09:50 · 1303 阅读 · 2 评论 -
位运算的妙用 2
如图所示,在32个比特位表示的数中,左移之后低位补0,原来的1100 1000变为了11 0010 0000,也就是由200变为了800,不难发现左移一次,原来的数字乘以2,这个小技巧在以后的学习中也非常有用,右移也是一样的道理,只不过变为了高位补0,右边舍去,数值等于原来的数字乘以1/2。减去之后再和原来的数字做& 运算,参与借位的部分就都变为了 0 ,从而每次都消掉一个最低位的1,依次循环,直到最后结果为0,减去1的个数就是原来数字中1的个数。与方法一类似,这次我们选择右移要比对的数字,1 保持不动。原创 2024-01-04 10:30:53 · 748 阅读 · 4 评论 -
常见排序算法
本文章对四种常见的排序算法进行了简单的解读及代码实现原创 2023-11-28 17:33:06 · 1239 阅读 · 0 评论
分享