
在本文中,我们将提供完整的信息来确定 n 叉树中给定节点的兄弟节点数量。我们需要使用用户给定的 key 值找到该节点的兄弟节点;如果不是,则输出-1。我们只能使用一种方法 -
在这种方法中,我们将遍历所有节点并检查子节点是否与用户具有相同的值。如果存在,我们回答子节点的数量 - 1(给定值)。
#include <bits/stdc++.h>
using namespace std;
class Node { // structure of nodes of our tree.
public:
int key;
vector<Node*> child;
Node(int data){
key = data;
}
};
int main(){
// Building The Tree
Node* Base = new Node(50);
(Base->child).push_back(new Node(2));
(Base->child).push_back(new Node(30));
(Base->child).push_back(new Node(14));
(Base->child).push_back(new Node(60));
(Base->child[0]->child).push_back(new Node(15));
(Base->child[0]->child).push_back(new Node(25));
(Base->child[0]->child[1]->child).push_back(new Node(70));
(Base->child[0]->child[1]->child).push_back(new Node(100));
(Base->child[1]->child).push_back(new Node(6));
(Base->child[1]->child).push_back(new Node(1));
(Base->child[2]->child).push_back(new Node(7));
(Base->child[2]->child[0]->child).push_back(new Node(17));
(Base->child[2]->child[0]->child).push_back(new Node(99));
(Base->child[2]->child[0]->child).push_back(new Node(27));
(Base->child[3]->child).push_back(new Node(16));
int x = 30;
queue<Node*> q;
q.push(Base);
bool flag = 0;
int answer = -1;
if(Base -> key != x){
while(!q.empty()){
auto parent = q.front();
q.pop();
for(int i = 0; i < parent -> child.size(); i++){
if(parent -> child[i] -> key == x){
answer = parent -> child.size() - 1;
flag = 1;
break;
}
q.push(parent -> child[i]);
}
if(flag)
break;
}
cout << answer << "\n";
}
else
cout << "0\n";
return 0;
}3
在这个程序中,我们维护一个队列,其中包含未访问的节点,并且将弹出已访问的节点。现在,当我们探索一个节点时,我们探索它的子节点,如果子节点的值与 x 匹配,则触发我们的标志,并且我们的答案变量已被分配 child.size() - 1 的值,并且然后我们突破 for 循环现在我们检查标志是否被触发。如果它被触发,那么我们就退出 while 循环。之后,如果不存在具有给定值的节点,我们现在打印答案,所以我们的答案变量不会改变,输出将为-1。如果根值与给定值相同,则有一个 if 语句检查该值并运行我们的程序。
在本文中,我们解决了一个问题来找到n 叉树中给定节点的兄弟节点数量,时间复杂度为 O(N)。我们还学习了解决这个问题的C++程序以及解决这个问题的完整方法。我们可以用其他语言编写相同的程序,例如C、java、python等语言。
立即学习“C++免费学习笔记(深入)”;
以上就是使用C++编写,找到N叉树中给定节点的兄弟节点数量的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号