创建二叉树并计算结点数
时间: 2024-05-14 19:17:02 浏览: 6
好的,让我来帮助您回答这个问题。
首先,创建二叉树需要定义一个节点结构体,包括左子树和右子树指针,以及节点的值。然后使用递归的方式,从根节点开始,先创建左子树,再创建右子树。
以下是一个C++示例代码,可以实现二叉树的创建和计算节点数的功能:
```
#include<iostream>
using namespace std;
struct TreeNode //定义二叉树节点
{
int val; // 节点值
TreeNode *left; // 左子树指针
TreeNode *right; // 右子树指针
};
// 使用递归创建二叉树
TreeNode* CreateTree()
{
int val;
cout << "请输入节点值(输入-1表示空节点): ";
cin >> val;
if (val == -1)
{
return NULL; // 空节点
}
else
{
TreeNode *node = new TreeNode();
node->val = val;
node->left = CreateTree(); // 递归创建左子树
node->right = CreateTree(); // 递归创建右子树
return node;
}
}
// 计算节点数(递归实现)
int CountNodes(TreeNode* root)
{
if (root == NULL)
{
return 0;
}
else
{
return 1 + CountNodes(root->left) + CountNodes(root->right);
}
}
int main()
{
TreeNode *root = CreateTree(); // 创建二叉树
int count = CountNodes(root); // 计算节点数
cout << "节点数为:" << count << endl;
return 0;
}
```
希望这个代码示例能帮助您回答问题。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)