![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
手写数据结构
记录常见的数据结构的手动实现
@Sup
学无止境!
展开
-
手写HashMap
今天在做一个笔试题时,尽然要求手写一个HashMap,当场就懵了......不过话说回来,自己实现的过程中,也能加深对哈希表的理解。直接上代码。class MyHashMap{ static class Node{ int key; String value; Node next; Node(int _key, String _value){ key = _key; valu原创 2022-05-09 11:36:13 · 288 阅读 · 0 评论 -
面试常客之手写LFU缓存机制
LFU比LRU的实现更复杂,代码量更大。有两种方式,一是自己实现哈希链表这种数据结构,然后再解答。另一种是使用Java的HashMap和LinkedHashSet来实现,直接使用内置数据结构来解答。直接上代码吧,注释的很清楚了。第一种:自己实现哈希链表这种数据结构class LFUCache { //存储key,value,freq Map<Integer, Node> keyTable; //存储freq和双链表 Map<I原创 2022-05-09 23:03:43 · 607 阅读 · 0 评论 -
面试常客之手写LRU缓存机制
这道题既能考察LRU缓存机制的原理,又能考察手写数据结构的能力,可谓是“一箭双雕”。Java中的LinkedHashMap能够保证HashMap的有序性,但直接用内置的数据结构就没啥意义了,而且Java的LinkedList的操作时间复杂度不能保证O(1),因此这里我们手写一下哈希链表。哈希表直接用内置的了,当然我这里之前也手写过一个,需要的伙伴可以自己结合一下,手写HashMap_@Sup的博客-CSDN博客直接上代码吧,注释的很清楚了。有一说一,代码量还是有点大的。class LRUCac原创 2022-05-09 11:38:14 · 616 阅读 · 0 评论 -
手写跳表数据结构
跳表 是在 O(log(n)) 时间内完成增加、删除、搜索操作的数据结构。跳表相比于树堆与红黑树,其功能与性能相当,并且跳表的代码长度相较下更短,其设计思想与链表相似。原创 2022-06-04 14:39:38 · 445 阅读 · 1 评论