取二叉树的垂直和有哪些实际应用

What are some practical applications of taking the vertical sum of a binary tree

我遇到了这个面试题,想知道为什么要对二叉树求垂直和。这个算法有用吗?

http://www.careercup.com/question?id=2375661

对于平衡树,垂直和可以让您粗略地了解数据的范围。二叉树虽然更易于编码,但根据插入数据的顺序可能会呈现出更多病态的形状。垂直和将是该病理学的一个很好的指标。

查看 vertical sum in binary tree 处的代码。该算法是在假设树的最大宽度的情况下编写的。使用此算法,您将能够了解不同类型的不平衡树。

这个程序的一个有趣变体是使用固定数据集的排列来构建二叉树并查看各种垂直和。前导零和尾随零让您了解树是如何平衡的,垂直和可以让您深入了解数据到达顺序如何影响树的高度(以及树中数据的平均访问时间)。互联网搜索将 return 使用动态数据结构实现该算法。有了这些,我想你会想要记录哪个总和包括根节点。

你的问题"Is this algorithm useful?"实际上回避了二叉树与平衡树相比有多大用处的问题。树的垂直和记录了实现是更接近 O(N) 还是 O(log N)。这是一篇关于[平衡二叉树][3]的文章。在你的个人工具包中放置一个平衡树实现,并尝试记住你是否会使用树的前序、中序或 post 序遍历来计算你的垂直和。您将获得此问题的 A+。