算法
文章平均质量分 79
怪兽吃糖果
这个作者很懒,什么都没留下…
展开
-
LRU缓存java实现
算法 LRU 缓存机制可以通过哈希表配合双向链表实现,插入缓存或者获取缓存时移动相对应节点至链表尾部,起到保存访问顺序作用。哈希表可以实现O(1)时间复杂度查找链表节点,对于移动链表节点,节点保存了前置指针和后置指针,可以实现O(1)时间复杂度的删除与插入。具体操作如下:缓存插入 判断哈希表思否存在该该key,如果存在,获取该链表节点,并更新value;如果不存在则将键值对封装成新的链表节点;将该节点加入哈希表并插入链表尾部,tail指针指向当前节点,如果插入时缓存为空,则head与ta原创 2020-07-05 23:20:34 · 139 阅读 · 0 评论 -
二叉树的遍历
二叉树 二叉树(Binary tree)是树形结构的一个重要类型,二叉树的特点是每个结点最多只能有两棵子树,且有左右之分,下图所示就是一棵二叉树。 先序遍历 前序遍历(DLR)是二叉树遍历的一种,也叫做先根遍历、前序遍历、前序周游,可记做根左右。前序遍历首先访问根结点,然后遍历左子树,最后遍历右子树。 对于上图中的二叉树,先序遍历结果为:1、2、4、5、3、6、7中序遍历 中序遍历(LDR)是二叉树遍历的一种,也叫做中根遍历、中序周游。可记做左根右,中序遍历首先遍原创 2020-06-30 22:37:34 · 160 阅读 · 0 评论