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

C++ 计算二叉搜索树级别中的节点数,c++,binary-search-tree,nodes,C++,Binary Search Tree,Nodes,正如标题所说,我想计算树中任何给定级别的节点数。我已经知道如何创建成员函数来计算树的所有节点,只是不确定如何接近特定级别。这是我试过的。感谢您的帮助 第一个参数是指向用户输入的字符数组的点。root是表示“最早”节点的私有变量 int-TreeType::GetNodesAtLevel(ItemType*itemArray,int级别) { TreeNode*p=根; if(itemArray==NULL) 回来 如果(级别==0) { cout info left,level);//在一个而不

正如标题所说,我想计算树中任何给定级别的节点数。我已经知道如何创建成员函数来计算树的所有节点,只是不确定如何接近特定级别。这是我试过的。感谢您的帮助

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

int-TreeType::GetNodesAtLevel(ItemType*itemArray,int级别)
{
TreeNode*p=根;
if(itemArray==NULL)
回来
如果(级别==0)
{
cout info left,level);//在一个而不是另一个中取消引用只是测试
GetNodesAtLevel(*itemarray->右,level);//这两种方法似乎都不起作用
}
}

方法是使用队列(采用级别顺序遍历-BFS)。现在请遵循以下步骤:

取两个变量,count_level和count_queue(将总节点保持在一个队列中)

对于这样的树:

               A 
              / \
             B   C
            / \   \
           K   L   D
                   /
                  E
最初
count\u level=0
count\u queue=0
。现在:

  • 向队列中添加一个节点(此时,a将
    count\u queue
    增量为1)
  • 现在,当您找到
    count\u level=0
    时,执行此操作->
    count\u level=count\u queue
  • 在退出队列时添加kid节点,直到
    count\u级别变为0。因此,在这一点上,接下来的步骤是2,这将为您提供刚刚处理的级别下的节点数

  • 有一个相当简单的方法来做这种事情。只需拿出一张白纸,用简单明了的英语写下简短的句子,这是一个循序渐进的过程。完成后。在这里,我们不为其他人编写完整的程序,但总是将此类问题提交给您的橡皮鸭。在你的橡皮鸭同意你提出的行动计划后,只需把你写下来的东西直接翻译成C++。任务完成了!
                   A 
                  / \
                 B   C
                / \   \
               K   L   D
                       /
                      E