
数据结构
啦啦啦拉能量
诸事皆宜,百无禁忌
展开
-
【C++面试知识】map的底层实现及其相关
map的底层是红黑树实现的;而在查阅资料过程中出现多次的HashMap,其实是java里的一个容器,java面试时经常问的一个问题就是HashMap的实现方式,是有哈希表(hash table)实现的。另外C++中其实也有类似的容器叫unordered_map,它也是由哈希表实现的。红黑树VS哈希表红黑树存储结构的存取是O(logn),而哈希表是O(1),当然这是在哈希表没有冲突的...原创 2019-03-20 15:46:04 · 12403 阅读 · 2 评论 -
【C++面试知识】红黑树
其实我看很多面经的时候都没有说要你描述红黑树如何实现,最多问你map底层实现是什么,就是红黑树。但我还是怀着一颗好奇的心(主要怕面试也考)弄明白它。1.定义红黑树是一颗二叉搜索树:1.每个结点要么是红色要么是黑色;2.根节点和所有空叶子节点都是黑色;3.从根节点到空叶子节点途中没有连续两个结点颜色是红色(父节点为红,两个子节点就为黑);4.所有从根到空叶子节点的路上都有...原创 2019-03-20 15:55:08 · 1695 阅读 · 1 评论 -
【剑指offer】链表反转
这也是阿里一个面试题,今天刷剑指offer刷到了,好后悔。1.非递归方法用三个指针分别记录当前节点和前一个结点pre和后一个结点nex,当前结点首先指向头结点,前后结点都赋为NULL,通过操作使得当前结点的next指向pre,也就是反向,然后将当前结点往后移,继续循环进行反向操作,直到当前结点为NULL,就结束了整个链表的反向,最后返回pre结点,也就是反向后的链表的头(因为此时的当前...原创 2019-03-26 15:59:18 · 297 阅读 · 0 评论