LCA在二叉树O(n)空间O(1)时间内

时间:2016-07-19 10:13:38

标签: data-structures tree time-complexity

我需要找到在二叉树上使用预处理的数据结构,并在O(n)空间和O(1)时间内回答 LCA查询。

在这种情况下,哪种数据结构有帮助? 谢谢

1 个答案:

答案 0 :(得分:0)

有几种数据结构可以解决这个问题。最常见的方法是使用数据结构来解决范围最小查询问题,可以使用O(n)预处理时间和O(1)查询时间来解决,然后使用它来解决LCA。我为今年早些时候教过的一门课程整理了关于这个主题的两部分系列讲座幻灯片。

  • Part one讨论了范围最小查询问题并激发了一些常见的解决方案策略。
  • Part two讨论了Fischer-Heun RMQ结构,该结构符合必要的时间范围,以及如何使用它来解决LCA。

对于它的价值,实际上,有些解决方案使用O(n)预处理时间和O(log n)查询时间,但比同等的最坏情况有效结构更快。对于大多数实际目的而言,第一组演讲幻灯片中描述的⟨O(n),O(log n)⟩混合是足够好的。