JHHK

欢迎来到我的个人网站
行者常至 为者常成

【基础】15、哈希表(二)

目录

TreeMap vs HashMap

何时选择TreeMap?
元素具备可比较性且要求升序遍历(按照元素从小到大)

何时选择HashMap?
无序遍历

LinkHashMap

在HashMap的基础上维护元素的添加顺序,使得遍历的结果是遵从添加顺序的

一、添加节点

我们在添加节点的时候,同时再维护一个双向链表来记录节点的添加顺序。

假设添加顺序是
37、21、31、41、97、95、52、42、83

img

二、删除节点

1、删除叶子节点

删除二叉树上的叶子节点不会影响链表上的添加顺序

2、删除度为1的节点

删除度为1的节点不会影响链表上的添加顺序

3、删除度为2的节点

二叉树删除度为2的节点,实际删除的是该节点的前驱或后继节点,这样会导致链表的添加顺序发生改变。需要注意更换 node 与 前驱\后继节点 的连接位置

比如下图删除31

img

三、更换节点的链接位置

img


行者常至,为者常成!





R
Valine - A simple comment system based on Leancloud.