数据结构
文章平均质量分 72
吾为何物
这个作者很懒,什么都没留下…
展开
-
[基础数据结构|Java实现]二:二叉树(一篇搞懂二叉树基本操作)
[基础数据结构|Java实现]二:二叉树(一篇搞懂二叉树基本操作)本篇文章主要包括以下几个方面:二叉树的定义、二叉树的3种dfs遍历、二叉树的bfs遍历(层次遍历)、根据指定格式的描述来构造二叉树、根据后序和中序遍历的序列构造二叉树。第一部分:理论知识二叉树的定义每个父节点下面有0~2个节点,最上面的叫根节点,下面分别叫左右节点。每个节点都满足这种递归定义的要求。3种dfs遍历分别是先序遍历,中序遍历,和后序遍历举例:先序遍历结果(根左右):124536中序遍历结果(左根右):4原创 2022-04-01 15:20:03 · 866 阅读 · 0 评论 -
[Redis数据结构|Java实现] 二:字典(Map)
[Redis数据结构|Java实现] 二:字典(Map)[Redis数据结构|Java实现] 二:字典(Map)概念:Redis中的字典,底层是使用hashtable实现,一个哈希表里面可以有多个 哈希表节点,每个哈希表节点都保存着一个键值对。实现思路:哈希表实现:数组+链表哈希表的实现主要要考虑以下两个方面?解决方案:哈希表节点定义Map的常规操作实现put实现get实现(不要去遍历所有节点)扩容实现Redis里面扩容实现完整代码:测试代码:测试结果:[Redis数据结构|Java实现] 二:字典(Ma原创 2022-03-23 10:33:27 · 3294 阅读 · 0 评论 -
[基础数据结构|Java实现]一:HashSet
[基础数据结构|Java实现]一:HashSet实现思路:具体实现要求:Java实现代码:测试代码:测试结果:HashSet的基本概念:元素不能重复不能保证顺序💓为了实现简单,规定只能存储String,不能为Null,并且区分大小写。实现思路:底层用一个数组做为桶,然后每个桶都绑定一个链表;添加的每个元素都先计算其hash值,并对数组的长度取模,然后得到桶的索引,再利用equal判断是否需要添加到链表中即可。缺陷:java中的hashSet链表的长度达到某个值时,会自动转换为红黑树原创 2022-03-21 17:39:22 · 951 阅读 · 0 评论 -
[Redis数据结构|Java实现] 一:SDS简单动态字符串
[Redis数据结构|Java实现] 一:SDS简单动态字符串SDS的概念JAVA实现核心代码测试测试结果:SDS的概念SDS:保存了len和free属性,并保存了字节数组,同时以‘\0’结尾。可以在改变字符串长度的时候,减少内存的分配次数,提高性能。并且可以重用一部分c中的String Api.free属性为0,表示这个SDS没有未使用的空间。len的属性为5,表示这个SDS保存了5字节长的字符串。buf是一个char类型的数组,最后一个位置保存了’\0’(为了复用语言的api)。[原创 2022-03-18 11:40:37 · 3855 阅读 · 0 评论