你如何找到Sean Parent的“Shoe laces and beans”数据结构而不是树

时间:2016-08-26 14:24:37

标签: algorithm data-structures

我刚看了Sean Parent的CppCon 2015谈话“Better Code: Data Structures”,他在那里提出了“鞋带和豆子” 数据结构而不是树。

enter image description here

你是如何找到它的?你觉得这比树好吗?它的实力是什么价格?

2 个答案:

答案 0 :(得分:2)

鞋带易于生产,因为它对应于相应树的左递归下降。所以从树开始,你只需要下降一次并动态构建花边。在那之后,你不再需要递归了,因为花边只是左边递归下降的元素链接列表。

比树更好?这取决于你想做什么。

答案 1 :(得分:1)

总是取决于你测量的东西 这里有一些质量指标的可能性:

  • 内存使用
  • 随机访问速度
  • 遍历速度
  • ...

您还可以查看最坏情况的行为或平均案例行为。

所以'更好'取决于你将在哪种环境条件/限制下使用它。

至少它在遍历它时具有比通常的树结构更好的缓存未命中(和缓存预取)特性。那是因为元素是在内存中遍历的顺序。