C++ 计算二叉搜索树级别中的节点数
正如标题所说,我想计算树中任何给定级别的节点数。我已经知道如何创建成员函数来计算树的所有节点,只是不确定如何接近特定级别。这是我试过的。感谢您的帮助 第一个参数是指向用户输入的字符数组的点。root是表示“最早”节点的私有变量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);//在一个而不
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
。现在:
count\u queue
增量为1)count\u level=0
时,执行此操作->count\u level=count\u queue
count\u级别变为0。因此,在这一点上,接下来的步骤是2,这将为您提供刚刚处理的级别下的节点数
有一个相当简单的方法来做这种事情。只需拿出一张白纸,用简单明了的英语写下简短的句子,这是一个循序渐进的过程。完成后。在这里,我们不为其他人编写完整的程序,但总是将此类问题提交给您的橡皮鸭。在你的橡皮鸭同意你提出的行动计划后,只需把你写下来的东西直接翻译成C++。任务完成了!
A
/ \
B C
/ \ \
K L D
/
E