计算二叉搜索树级别中的节点数

时间:2020-04-24 03:08:14

标签: c++ binary-search-tree nodes

就像标题说的那样,我想为树的任何给定级别计算节点数。我已经知道如何使成员函数计数树的所有节点,只是不确定如何达到特定级别。这是我尝试过的。任何帮助表示赞赏。

第一个参数是指向用户输入的字符数组的点。 root是表示“最旧”节点的私有变量。

var studentSchema = newSchema ({
student: {
   name : String,
   surname : String,
   worplace : String,
   location : STring
})

1 个答案:

答案 0 :(得分:1)

执行此操作的方法是使用队列(使用级别顺序遍历-BFS)。现在,按照以下步骤操作:

采用两个变量count_level和count_queue(将总节点数保持在队列中)。

对于这样的树:

               A 
              / \
             B   C
            / \   \
           K   L   D
                   /
                  E

最初是count_level = 0count_queue = 0。现在:

  1. 将一个节点添加到队列中(在A点,将count_queue增加到 1 )。
  2. 现在,当您找到count_level = 0时,请执行此操作-> count_level = count_queue
  3. 在出队列的同时添加子节点,直到count_level变为0。因此,在这一点上,请执行以下步骤 2 ,这将为您提供低于已存在节点级别的节点数已处理。
相关问题