6、TreeMap:红黑树真的有那么难吗

你好,我是微扰君。 上一讲,我们讲到如何利用散列表解决类似“文档中不同单词计数”的问题,并以JDK中HashMap的实现为例讲解了散列表背后的思想。 单词计数这个问题最基本的解决思路就是建立一个线性的符号表,每次计数的时候,遍历符号表就可以找到对应单...

5、HashMap:一个优秀的散列表是怎么来的

你好,我是微扰君。 过去四讲我们学习了STL中全部的序列式容器,数组、链表、队列、栈;今天来谈一谈另一类容器,关联式容器。所谓“关联式”,就是存储数据的时候,不只是存储元素的值本身,同时对要存储的元素关联一个键,形成一组键值对。这样在访问的时候,我们...

4、栈:函数调用的秘密究竟是什么

你好,我是微扰君。 目前为止,我们已经介绍了STL里的大部分序列式容器,包括vector、deque和list,也对应着数组、队列和链表这几种基础数据结构;今天我们来学习最后一种常用的线性数据结构,栈。 栈这个词,相信每一个研发同学在学习编程的过程中...

3、双端队列:并行计算中的工作窃取算法如何实现

你好,我是微扰君。 目前我们已经学习了 vector 动态数组和 list 双向链表两种STL中的序列式容器了,今天我们继续学习另一种常见的序列式数据结构,双端队列。 在并行计算中,我们常常会用多进程处理一些复杂的计算任务。为了能够通过多进程加速计算...

2、双向链表:list如何实现高效地插入与删除

你好,我是微扰君。 在上一讲实现的一个简易银行账户管理系统中,每个账号都对应了一个余额,系统支持用户的开通、存/取款和查询余额。我们使用动态数组容器满足了频繁随机访问查询的需求。 但是如果要在系统里支持删除的功能,就会有一个问题:我们为了不...

13536373839243