Ascii值二进制搜索树中的最大级别数?

时间:2017-04-27 02:59:12

标签: c ascii binary-search-tree

我正在对二进制搜索树进行预先遍历遍历,其中每个节点都包含一个唯一的ASCII字符(根据其十进制值排序)。

我计划通过添加' 0'来打印每个节点的路径。每当我向左移动并添加' 1'每当我走得正确的时候。我计划将此值存储在数组中,但我不知道如何计算数组的最大大小。

如果我有正确的话,最大路径大小应该等于包含唯一节点中每个ASCII字符的树的深度。我该如何计算最大深度?

注意:总共有255个ASCII值。

1 个答案:

答案 0 :(得分:-1)

使用递归可以找到二叉搜索树的最大深度。

递归:使用递归找到最大深度涉及分而治之的思想。基本上,我们将较大的问题(找到一棵树的最大深度)分为两个较小的问题(找到左子树和右子树的最大深度)。找到max(leftSubtree.depth,rightSubtree.depth)后,将其加1以考虑树的根级别。代码看起来像这样:

#Definition
def maxDepth(BSTNode root):

#Base Case
  if (root == null):
    return 0
#Find the maximum depth of left and right subtrees using recursion
  leftDepth = maxDepth(root.left)
  rightDepth = maxDepth(root.right)
  return max(left, right) + 1