C ++中n元树的每个节点的子树中的叶节点数
在本教程中,我们将编写一个程序来查找n叉树中每个节点的叶节点数。
让我们看看解决问题的步骤。
用你喜欢的树初始化n叉树。
使用DFS遍历树。
维护一个数组来存储每个节点的叶子节点计数。
在递归调用DFS后增加叶节点的计数。
打印所有带有叶节点计数的节点。
示例
让我们看看代码。
#include输出结果using namespace std; void insertNode(int x, int y, vector tree[]) { tree[x].push_back(y); } void DFS(int node, int leaf[], int visited[], vector tree[]) { leaf[node] = 0; visited[node] = 1; for (auto it : tree[node]) { if (!visited[it]) { DFS(it, leaf, visited, tree); leaf[node] += leaf[it]; } } if (!tree[node].size()) { leaf[node] = 1; } } int main() { int N = 8; vector tree[N + 1]; insertNode(1, 2, tree); insertNode(1, 3, tree); insertNode(3, 4, tree); insertNode(3, 5, tree); insertNode(3, 6, tree); insertNode(4, 7, tree); insertNode(4, 8, tree); int leaf[N + 1]; int visited[N + 1]; for (int i = 0; i <= N; i++) { visited[i] = 0; } DFS(1, leaf, visited, tree); for (int i = 1; i <= N; i++) { cout << i << "->" << leaf[i] << endl; } return 0; }
如果你运行上面的代码,那么你会得到下面的结果。
1->5 2->1 3->4 4->2 5->1 6->1 7->1 8->1
结论
如果您对本教程有任何疑问,请在评论部分提及。
热门推荐
3 送米的祝福语简短
10 生日祝福语简短语股票
11 老板祝福语简短20字
12 祝福语大全儿子结婚简短
13 中考祝福语 简短50字
14 宝宝生日奶奶祝福语简短
15 祝贺新生宝宝祝福语简短
16 给老公祝福语简短2026
17 春节初二祝福语简短
18 便利贴老师祝福语简短